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

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

    文章

    43

    瀏覽量

    12268
  • 編譯
    +關注

    關注

    0

    文章

    661

    瀏覽量

    32990
  • RPM
    RPM
    +關注

    關注

    0

    文章

    45

    瀏覽量

    17734

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

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

收藏 人收藏

    評論

    相關推薦

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

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

    添加一個制作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
    的頭像 發表于 12-31 10:52 ?102次閱讀

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

    作為一個5年的phper,這兩年公司和個人都在順應技術趨勢,新項目慢慢從php轉向go語言,從2021年到現在,筆者手上先后開發了兩個go項目。在學習
    的頭像 發表于 11-11 09:22 ?196次閱讀

    go語言如何解決并發問題

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

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

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

    三十分鐘入門基礎Go Java小子版

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

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

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

    簡單的C程序設計

    電子發燒友網站提供《最簡單的C程序設計.pptx》資料免費下載
    發表于 05-28 16:41 ?10次下載

    使用Docker部署Go Web應用程序步驟

    大多數情況下Go應用程序被編譯成單個二進制文件,web應用程序則會包括模版和配置文件。而當一個項目中有很多文件的時候,由于很多文件沒有同步就會導致錯誤的發生并且產生很多的問題。
    發表于 04-20 09:33 ?544次閱讀
    使用Docker部署<b class='flag-5'>Go</b> Web應用<b class='flag-5'>程序</b>步驟

    Profile電機的時候轉速顯示NaN RPM是什么意思?

    Profile電機的時候轉速顯示NaN RPM,什么意思?
    發表于 04-12 07:28

    學習筆記|如何用Go程序采集溫濕度傳感器數據

    整個利用Go語言從AHT20溫濕度傳感器獲取數據的完整步驟和實現方法。一、C程序獲取AHT20溫濕度1、參考ElfBoard官方例程:03-例程源碼\03-1命令
    的頭像 發表于 03-21 11:46 ?790次閱讀
    學習筆記|如何用<b class='flag-5'>Go</b><b class='flag-5'>程序</b>采集溫濕度傳感器數據

    嵌入式學習-ElfBoard ELF 1開發板-共創官學習筆記分享|將Go程序編譯到ELF 1開發板

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

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

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

    塑料熱增強超薄小外形封裝SOT1220-4程序包信息

    電子發燒友網站提供《塑料熱增強超薄小外形封裝SOT1220-4程序包信息.pdf》資料免費下載
    發表于 02-20 10:29 ?0次下載
    塑料熱增強超薄小外形封裝SOT1220-4<b class='flag-5'>程序包</b>信息

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

    電子發燒友網站提供《塑料單端表面安裝封裝(LFPAK56E)程序包信息.pdf》資料免費下載
    發表于 02-19 10:25 ?0次下載
    塑料單端表面安裝封裝(LFPAK56E)<b class='flag-5'>程序包</b>信息
    主站蜘蛛池模板: 在线观看qvod| 高中生被C到爽哭视频免费 高挑人妻无奈张开腿 | 国产一区二区在线免费观看 | 亚洲黄色在线视频 | 青娱乐极品视觉盛宴av | 午夜毛片在线观看 | 亚洲福利天堂网福利在线观看 | 亚洲精品高清在线观看 | 小夫妻天天恶战 | 国产欧美日韩视频怡春院 | 好男人在线观看视频观看高清视频免费 | 在线看片成人免费视频 | 成人无码精品一区二区在线观看 | 老司机亚洲精品影院在线观看 | 午夜DJ国产精华日本无码 | 狠狠色狠狠色狠狠五月ady | 欧美日韩国产码在线 | 国产人妻久久久精品麻豆 | 羞羞在线观看 | 国产成人在线小视频 | 护士日本ⅹxxx丰满hd | 在线免费观看国产 | 国产一区2区 | 黄色软件色多多 | 天天狠狠色综合图片区 | 国产亚洲视频在线 | 同时被两个男人轮流舔 | 99久久免费精品国产 | 日本高清免费看 | 伊人不卡久久大香线蕉综合影院 | 男人的天堂MV在线视频免费观看 | 国产又黄又粗又爽又色的视频软件 | 色综合久久网女同蕾丝边 | 2022国产精品不卡a | 蜜柚免费视频高清观看在线 | 花蝴蝶在线直播观看 | 9988电影网| 国产品无码一区二区三区在线 | 精品国产乱码久久久久久夜深人妻 | 久久国产精品免费A片蜜芽 久久国产精品萌白酱免费 久久国产精品麻豆AV影视 | 99久久精品一区二区三区 |