国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

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

馬哥Linux運維 ? 來源:go語言中文網 ? 2023-01-05 11:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

# 1. 環境準備

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

yuminstall-ygccmakerpm-buildredhat-rpm-config

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

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

于是乎,有人就編寫了一個開源工具 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

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

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

# 2. 配置文件

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

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

{
"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 要包含如下幾項內容:

  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請對應替換
go-bin-rpmgenerate-orpms/xxxx-$(VERSION)-$(RELEASE).rpm

如果在不同的平臺或系統有不同的二進制,則可以準備多個 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 就可以直接一步實現 編譯 + 打包 ,使用上更加順手。

審核編輯 :李倩


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

    關注

    0

    文章

    45

    瀏覽量

    12568
  • 編譯
    +關注

    關注

    0

    文章

    694

    瀏覽量

    35158
  • RPM
    RPM
    +關注

    關注

    0

    文章

    45

    瀏覽量

    18163

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    MAX31790:6通道PWM輸出風扇RPM控制器的深度解析

    MAX31790:6通道PWM輸出風扇RPM控制器的深度解析 在電子設備的散熱系統中,風扇的精確控制至關重要。MAX31790作為一款6通道PWM輸出風扇RPM控制器,為多風扇系統的控制和監測提供
    的頭像 發表于 03-02 09:55 ?90次閱讀

    linux-arm開發環境的簡單配置

    linux-arm開發環境簡單配置 關于linux-arm開發環境簡單配置是ARM學習的第一步,很多初學者會在這問題上糾結很久都不能配置好開發環境。推薦大家看一下韋東山視頻,講得很詳細,代碼基本上
    發表于 01-13 07:56

    低成本TLI4971/TLE4971電流傳感器評估套件——MS2Go與S2Go

    )的TLI4971/TLE4971電流傳感器MS2Go和S2Go評估套件,這兩款套件為我們提供一種低成本、高效的方式來快速評估TLI4971/TLE4971電流傳感器。 文件下載: Infineon
    的頭像 發表于 12-19 16:50 ?831次閱讀

    KIT_XMC14_2GO開發板:功能特性與硬件解析

    KIT_XMC14_2GO開發板:功能特性與硬件解析 在電子開發領域,一款性能出色且功能豐富的開發板對于工程師來說至關重要。今天,我們就來詳細探討一下KIT_XMC14_2GO開發板,它配備英飛凌
    的頭像 發表于 12-19 10:20 ?445次閱讀

    探索TLE493D-P3XX-MS2GO 3D 2Go套件:開啟3D磁傳感器評估之旅

    )的TLE493D-P3XX-MS2GO 3D 2Go套件為我們提供一個便捷、高效的解決方案。今天,我們就來深入了解一下這個套件,看看它能為我們帶來哪些便利和驚喜。 文件下載: Infineon
    的頭像 發表于 12-18 17:15 ?818次閱讀

    【道生物聯TKB-623評估板試用】TKB-623評估板雙機通訊測試_程序開發

    與電腦挺通信,可以連接到其他MCU設備進行通信。 為了方便后續的測試,我研究道生物聯提供的文檔,開發了一個通訊測試程序。 一、硬件連線 為了方便簡單測試,我用了兩個一樣的USB2T
    發表于 10-18 23:54

    gitee不能用了,切換不到github,軟件都無法使用,怎么解決?

    gitee不能用了,切換不到github,軟件都無法使用了,這個要怎么解決呀
    發表于 10-09 08:41

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

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

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

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

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

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

    電子亮相2025慕尼黑上海電子展

    為期三天的 2025 慕尼黑上海電子展(electronica China 2025)圓滿落幕,作為電子行業的重要年度盛會,吸引眾多全球知名電子企業與專業觀眾齊聚一堂。華電子攜最新技術成果精彩
    的頭像 發表于 04-24 15:21 ?2221次閱讀
    華<b class='flag-5'>太</b>電子亮相2025慕尼黑上海電子展

    看完這篇,SPI其實簡單嘛(可下載)

    首先我們來簡單介紹一下SPI,SPI是串行外設接口(SerialPeripheralInterface)簡單來講就是它一種高速的,全雙工,同步的通信總線被各種總線搞的暈頭轉向的人來說就會問了
    發表于 03-26 14:29 ?2次下載

    NB500原理圖

    NB500原理圖
    發表于 03-21 16:45 ?6次下載

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

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

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

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