女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

Go程序打成rpm包,也太簡單了

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

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

首先是 rpmbuild 的相關(guān)依賴,無論是什么語言寫的程序,只要是打包成 rpm 包,就都需要這些

yuminstall-ygccmakerpm-buildredhat-rpm-config

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

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

于是乎,有人就編寫了一個開源工具 go-bin-rpm,用它可以很方便的將二進制文件打包成 rpm 包。

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

個人認為比較方便的是下面這條命令

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 ,當然你也可以用其他文件名,我這里直接使用默認的,這樣后面打包時就不用指定配置文件的名字。

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

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

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

  1. 二進制文件

  2. service 文件

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

其中 service 文件的模板,這邊也給出來

[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

一切準備好了,就可以使用如下命令

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

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

# 3. 使用 Makefile

go-bin-rpm 的命令還是比較長,我習慣寫一個 Makefile 來方便編譯

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 就可以直接一步實現(xiàn) 編譯 + 打包 ,使用上更加順手。

審核編輯 :李倩


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

    關(guān)注

    0

    文章

    45

    瀏覽量

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

    關(guān)注

    0

    文章

    676

    瀏覽量

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

    關(guān)注

    0

    文章

    45

    瀏覽量

    17897

原文標題:Go 程序打成 rpm 包,也太簡單了

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

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    CFA科普系列01|EDA工具裝不上?可能不是你技術(shù)差,而是少了這兩個命令

    的 .exe 安裝,內(nèi)部包含了程序的二進制、說明信息、安裝路徑等元數(shù)據(jù)。RPM 安裝后會被系統(tǒng)記錄并可以通過命令進行管理。 2.2 RPM
    發(fā)表于 05-09 15:27

    用一套Linux系統(tǒng),撐起整個芯片設(shè)計平臺?CFA團隊教你如何搭好EDA智算平臺的技術(shù)底座

    系的“基礎(chǔ)功” RPM(Redhat Package Manager)是最基礎(chǔ)的軟件包管理工具,它由Red Hat公司提出的一種軟件包管理標準。 是Linux各發(fā)行版中應(yīng)用最廣泛的軟件格式之一(還有
    發(fā)表于 05-07 14:44

    浴室鏡能這么智能?自動除霧+時間顯示,方便了!

    自動除霧+時間顯示浴室鏡能這么智能?方便了清晨起床,睡眼惺忪地走到浴室鏡前,鏡面卻蒙著一層霧氣;夜晚護膚,想要調(diào)暗燈光營造溫馨氛圍,卻找不到開關(guān);匆忙出門,總想隨時知道時間和溫度……這些生活中
    的頭像 發(fā)表于 04-30 18:33 ?139次閱讀
    浴室鏡<b class='flag-5'>也</b>能這么智能?自動除霧+時間顯示,<b class='flag-5'>太</b>方便了!

    電子全新推出兩款LDMOS放大器

    電子全新推出的 HTM9GO9S015P 和 H9G3438M15P 兩款 LDMOS 放大器,分別覆蓋 1.8 - 950 MHz 和 3.4 - 3.8 GHz 的頻段,均提供 15W 的輸出功率。
    的頭像 發(fā)表于 03-19 17:11 ?552次閱讀

    使用海爾曼通/HellermannTyton 3D CAD 模型進行快速高效的設(shè)計

    地找到所需的電纜管理解決方案,然后還能將下載的產(chǎn)品 CAD 模型直接導入到他們的設(shè)計中。目前海爾曼通的產(chǎn)品目錄包括電纜扎帶、固定件以及電纜保護產(chǎn)品。海爾曼通與 CADENAS 合作,為其數(shù)千種產(chǎn)品
    發(fā)表于 03-14 16:55

    window 10系統(tǒng)生成的安裝程序在win7上運行,我生成時配置win7,但是還是報需要win10以上配置系統(tǒng)

    window 10系統(tǒng)生成的安裝程序在win7上運行,我生成時配置win7,但是還是報需要win10以上配置系統(tǒng),怎么解決啊
    發(fā)表于 01-02 14:33

    電子2024年度精彩回顧

    2024年,華電子在多個領(lǐng)域?qū)崿F(xiàn)技術(shù)突破和市場突破,不斷為行業(yè)帶來創(chuàng)新產(chǎn)品和解決方案。回顧過去的一年,華電子在產(chǎn)品開發(fā)、品牌推廣、榮譽獎項、研發(fā)創(chuàng)新、龍馳建設(shè)等方面取得了顯著成就,彰顯
    的頭像 發(fā)表于 01-02 14:17 ?625次閱讀

    添加一個制作rpm直接升級的參考方式

    zlib-develzlib-devel-1.2.7-18.el7.x86_64# rpm -qa|grep pam-develpam-devel-1.1.8-23.el7.x86_64 下載需要的高版本的openssh安裝,記得要安裝p1
    的頭像 發(fā)表于 12-31 10:52 ?324次閱讀

    在學習go語言的過程踩過的坑

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

    go語言如何解決并發(fā)問題

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

    關(guān)于赫茲波的介紹

    在上面的圖表中,光波和無線電波是相同的電磁波,被應(yīng)用于社會的各個領(lǐng)域。 另一方面,赫茲波還沒有被應(yīng)用。然而,赫茲波具有以下有吸引力的特性和各領(lǐng)域的預(yù)期是很有用的。 赫茲波的性質(zhì) ·類似于
    的頭像 發(fā)表于 09-29 06:18 ?638次閱讀
    關(guān)于<b class='flag-5'>太</b>赫茲波的介紹

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

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

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

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

    ESP-01升級后,從PC執(zhí)行ping操作時,數(shù)據(jù)丟失,怎么解決?

    我將 ESP-01 升級到版本“0020000903” 我嘗試制作網(wǎng)絡(luò)服務(wù)器應(yīng)用程序 - (我成功,我能夠在谷歌瀏覽器上看到我的網(wǎng)頁) 一切都很好,但是待機 5 分鐘后 ESP 不再
    發(fā)表于 07-17 06:09

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

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