色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Go程序打成rpm包,也太簡(jiǎn)單了

馬哥Linux運(yùn)維 ? 來(lái)源:go語(yǔ)言中文網(wǎng) ? 2023-01-05 11:32 ? 次閱讀

# 1. 環(huán)境準(zhǔn)備

首先是 rpmbuild 的相關(guān)依賴(lài),無(wú)論是什么語(yǔ)言寫(xiě)的程序,只要是打包成 rpm 包,就都需要這些

yuminstall-ygccmakerpm-buildredhat-rpm-config

rpmbuild 的使用,需要你寫(xiě)不少的配置,非常繁瑣,有研究過(guò)的人自然知道其中的淚。

但大多數(shù)情況下,一個(gè)簡(jiǎn)單的 rpm 包可能就只是執(zhí)行一個(gè)二進(jìn)制文件而已,完全沒(méi)有去花費(fèi)大量的時(shí)間去系統(tǒng)學(xué)習(xí)它們。

于是乎,有人就編寫(xiě)了一個(gè)開(kāi)源工具 go-bin-rpm,用它可以很方便的將二進(jìn)制文件打包成 rpm 包。

go-bin-rpm 的作者提供了多種安裝方式

個(gè)人認(rèn)為比較方便的是下面這條命令

wget-O-https://raw.githubusercontent.com/mh-cbon/latest/master/bintray.sh
|GH=mh-cbon/go-bin-rpmsh-xe

執(zhí)行完成后,可以使用 --version 命令查看是否安裝成功

$go-bin-rpm--version
go-bin-rpmversion1.0.0

# 2. 配置文件

go-bin-rpm 的配置文件是 rpm.json ,當(dāng)然你也可以用其他文件名,我這里直接使用默認(rèn)的,這樣后面打包時(shí)就不用指定配置文件的名字。

rpm.json 的內(nèi)容相當(dāng)精簡(jiǎn),且直觀易懂,模板如下

{
"name":"you-service-name",#rpm包名稱(chēng)
"version":"0.0.1",
"release":"20221110",
"arch":"x86_64",
"summary":"",
"description":"",
"license":"iswbm.com",
"url":"https://gtihub.com/iswbm/!name!",#!name!相當(dāng)于變量,會(huì)取前面rpm包名稱(chēng)
"files":[
{
"from":"./bin/!name!",
"to":"/usr/local/!name!/",
"base":"",
"type":""
},
{
"from":"./!name!.service",
"to":"/usr/lib/systemd/system/",
"base":"",
"type":""
}
]
}

如果你的 rpm 安裝后是以 service 運(yùn)行的,那 files 要包含如下幾項(xiàng)內(nèi)容:

  1. 二進(jìn)制文件

  2. service 文件

  3. 配置文件(如果需要的話)

其中 service 文件的模板,這邊也給出來(lái)

[Unit]
Description=
After=syslog.targetnetwork.target

[Service]
Environment=key=value
Type=simple
NotifyAccess=all
TimeoutStartSec=0
Restart=always
User=root
ExecStart=/usr/local/xxxx/bin/xxxx

[Install]
WantedBy=multi-user.target

一切準(zhǔn)備好了,就可以使用如下命令

#VERSION和RELEASE請(qǐng)對(duì)應(yīng)替換
go-bin-rpmgenerate-orpms/xxxx-$(VERSION)-$(RELEASE).rpm

如果在不同的平臺(tái)或系統(tǒng)有不同的二進(jìn)制,則可以準(zhǔn)備多個(gè) rpm.json,然后在打包時(shí),使用 -f rpm.json 來(lái)指定配置文件。

# 3. 使用 Makefile

go-bin-rpm 的命令還是比較長(zhǎng),我習(xí)慣寫(xiě)一個(gè) Makefile 來(lái)方便編譯

VERSION=1.0.0
RELEASE=$(shelldate+"%Y%m%d")

.PHONY:build-go
build-go:
gobuild-o./bin/hello.

.PHONY:build
build:build-go
sed-i"s/VERSION/$(VERSION)/g"rpm.json
sed-i"s/RELEASE/$(RELEASE)/g"rpm.json
mkdir-prpms
go-bin-rpmgenerate-orpms/hellp-$(VERSION)-$(RELEASE).rpm

后面只要使用 make build 就可以直接一步實(shí)現(xiàn) 編譯 + 打包 ,使用上更加順手。

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Go
    Go
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    12248
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    657

    瀏覽量

    32852
  • RPM
    RPM
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    17710

原文標(biāo)題:Go 程序打成 rpm 包,也太簡(jiǎn)單了

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    在學(xué)習(xí)go語(yǔ)言的過(guò)程踩過(guò)的坑

    作為一個(gè)5年的phper,這兩年公司和個(gè)人都在順應(yīng)技術(shù)趨勢(shì),新項(xiàng)目慢慢從php轉(zhuǎn)向go語(yǔ)言,從2021年到現(xiàn)在,筆者手上先后開(kāi)發(fā)了兩個(gè)go項(xiàng)目。在學(xué)習(xí)
    的頭像 發(fā)表于 11-11 09:22 ?159次閱讀

    go語(yǔ)言如何解決并發(fā)問(wèn)題

    GO快很多。現(xiàn)在工作中還是有一些老項(xiàng)目在使用PHP,但21年之后的新項(xiàng)目基本上就都是用GO。那為什么PHP那么香,還要轉(zhuǎn)戰(zhàn)使用GO呢,下
    的頭像 發(fā)表于 10-23 13:38 ?133次閱讀
    <b class='flag-5'>go</b>語(yǔ)言如何解決并發(fā)問(wèn)題

    【米爾NXP i.MX 93開(kāi)發(fā)板試用評(píng)測(cè)】4、使用golang搭建Modbus 服務(wù)器

    golang程序。我們可以在官網(wǎng)上下載aarch64,也就是arm64平臺(tái)的壓縮 使用以下的指令 wget https://golang.google.cn/dl
    發(fā)表于 09-21 22:51

    三十分鐘入門(mén)基礎(chǔ)Go Java小子版

    前言 Go語(yǔ)言定義 Go(又稱(chēng) Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開(kāi)發(fā)的一種靜態(tài)、強(qiáng)類(lèi)型、編譯型語(yǔ)言。Go 語(yǔ)言
    的頭像 發(fā)表于 08-12 14:32 ?721次閱讀
    三十分鐘入門(mén)基礎(chǔ)<b class='flag-5'>Go</b> Java小子版

    env工具生成的mdk工程 ,頭文件路徑怎么解決?

    使用env工具 生成的mdk工程 中的 頭文件路徑
    發(fā)表于 07-05 08:13

    簡(jiǎn)單的C程序設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《最簡(jiǎn)單的C程序設(shè)計(jì).pptx》資料免費(fèi)下載
    發(fā)表于 05-28 16:41 ?10次下載

    使用Docker部署Go Web應(yīng)用程序步驟

    大多數(shù)情況下Go應(yīng)用程序被編譯成單個(gè)二進(jìn)制文件,web應(yīng)用程序則會(huì)包括模版和配置文件。而當(dāng)一個(gè)項(xiàng)目中有很多文件的時(shí)候,由于很多文件沒(méi)有同步就會(huì)導(dǎo)致錯(cuò)誤的發(fā)生并且產(chǎn)生很多的問(wèn)題。
    發(fā)表于 04-20 09:33 ?493次閱讀
    使用Docker部署<b class='flag-5'>Go</b> Web應(yīng)用<b class='flag-5'>程序</b>步驟

    Profile電機(jī)的時(shí)候轉(zhuǎn)速顯示NaN RPM是什么意思?

    Profile電機(jī)的時(shí)候轉(zhuǎn)速顯示NaN RPM,什么意思?
    發(fā)表于 04-12 07:28

    學(xué)習(xí)筆記|如何用Go程序采集溫濕度傳感器數(shù)據(jù)

    整個(gè)利用Go語(yǔ)言從AHT20溫濕度傳感器獲取數(shù)據(jù)的完整步驟和實(shí)現(xiàn)方法。一、C程序獲取AHT20溫濕度1、參考ElfBoard官方例程:03-例程源碼\03-1命令
    的頭像 發(fā)表于 03-21 11:46 ?700次閱讀
    學(xué)習(xí)筆記|如何用<b class='flag-5'>Go</b><b class='flag-5'>程序</b>采集溫濕度傳感器數(shù)據(jù)

    嵌入式學(xué)習(xí)-ElfBoard ELF 1開(kāi)發(fā)板-共創(chuàng)官學(xué)習(xí)筆記分享|將Go程序編譯到ELF 1開(kāi)發(fā)板

    ElfBoard組建的共創(chuàng)社是嵌入式科技創(chuàng)新與學(xué)習(xí)實(shí)踐的前沿陣地,我們有幸見(jiàn)證著每一位共創(chuàng)官積極投身于嵌入式技術(shù)的熱潮中,用實(shí)際行動(dòng)詮釋著探索精神。今天就跟各位小伙伴分享一下共創(chuàng)官是怎樣將Go程序
    發(fā)表于 02-21 10:22

    塑料單端通孔封裝SOT8071-1程序包信息

    電子發(fā)燒友網(wǎng)站提供《塑料單端通孔封裝SOT8071-1程序包信息.pdf》資料免費(fèi)下載
    發(fā)表于 02-21 10:15 ?0次下載
    塑料單端通孔封裝SOT8071-1<b class='flag-5'>程序包</b>信息

    塑料單端表面安裝封裝(LFPAK56E)程序包信息

    電子發(fā)燒友網(wǎng)站提供《塑料單端表面安裝封裝(LFPAK56E)程序包信息.pdf》資料免費(fèi)下載
    發(fā)表于 02-19 10:25 ?0次下載
    塑料單端表面安裝封裝(LFPAK56E)<b class='flag-5'>程序包</b>信息

    塑料單端表面安裝封裝SOT8017程序包信息

    電子發(fā)燒友網(wǎng)站提供《塑料單端表面安裝封裝SOT8017程序包信息.pdf》資料免費(fèi)下載
    發(fā)表于 02-01 09:41 ?0次下載
    塑料單端表面安裝封裝SOT8017<b class='flag-5'>程序包</b>信息

    MiniProg4在POWER_DRILL2GO周期后失去與PC的連接的原因?

    再次檢索它。 發(fā)生這種情況時(shí),編程器甚至沒(méi)有顯示在 CYPRESS? 編程器中,并且插拔編程器也無(wú)濟(jì)于事。 在我的 Python 代碼中,我在 POWER_DRILL2GO 循環(huán)芯片之前關(guān)閉程序員的端口,盡管我認(rèn)為這應(yīng)該無(wú)關(guān)緊
    發(fā)表于 01-19 07:55

    紅帽發(fā)布AI新工具:利用AI模型解析RPM構(gòu)建失敗原因

    對(duì)Linux操作系統(tǒng)有所了解的人應(yīng)該清楚,RPM(Red Hat Package Manager)作為互聯(lián)網(wǎng)下載的打包與安裝工具,能產(chǎn)生.RPM后綴的文件。Red Hat用戶(hù)可通過(guò)此工具如Windows用戶(hù)安裝exe文件一般自
    的頭像 發(fā)表于 01-18 10:12 ?610次閱讀
    主站蜘蛛池模板: 最新无码专区在线视频| 无码射肉在线播放视频| 第一次处破女18分钟免费| 十分钟免费视频大全在线| 国产国产成年在线视频区| 亚洲精品91| 口工漫画r18全彩啪啪| 99久酒店在线精品2019| 日韩亚洲国产欧美免费观看| 国产精品综合AV一区二区国产馆| 亚洲乱码中文字幕久久孕妇黑人| 麻豆AV无码蜜臀AV色哟| YY8090福利午夜理论片| 性白俄罗斯高清xxxxx| 久久精品国产欧美| jiucao在线观看精品| 忘忧草下载| 久久久久国产一级毛片高清片| 98久久无码一区人妻A片蜜| 日日撸影院在线| 狠狠色狠色综合曰曰| 姉调无修版ova国语版| 人与禽物videos另类| 国产亚洲精品97在线视频一| 中文无码乱人伦中文视频播放| 欧美性极品黑人hd| 国产人妖一区二区| 最新快播网站| 色综合伊人色综合网站| 精品无码久久久久久国产百度 | 粉嫩极品国产在线观看| 亚洲精品免费观看| 男女做爽爽爽视频免费软件| 国产精品九九久久| 与邻居换娶妻子2在线观看| 秋霞在线观看视频一区二区三区| 国产精品久久久久久久A片冻果| 永久免费在线视频| 日韩中文无线码在线视频| 精品三级在线观看| YY8090福利午夜理论片|