RPM打包C 程式例項

2021-08-03 18:50:58 字數 2009 閱讀 5523

$ rpm --showrc|grep _topdir

-14: _builddir %/build

-14: _rpmdir %/rpms

-14: _sourcedir %/sources

-14: _specdir %/specs

-14: _srcrpmdir %/srpms

-14: _topdir %/redhat

$ rpm --showrc|grep _usrsrc

-14: _topdir %/redhat

-14: _usrsrc %/src

$ rpm --showrc|grep _usr

-14: _defaultdocdir %/share/doc

-14: _topdir %/redhat

-14: _usr /usr

-14: _usrsrc %/src

一般是在/usr/src/redhat目錄下

hello.spec

%define debug_package %

summary: hello world rpm package

name: hello

version: 0.1

release: 1

source: hello-0.1.tar.gz

license: gpl

packager: amoblin

url:

#buildroot: /usr/src/redhat/build/hello-0.1/ buildroot 代表最終的安裝目錄。換言之,如果 wget 最終安裝在 /usr/local/bin/wget 和 /usr/local 中的其他子目錄下,比如文件安裝在 /usr/local/man 下,那麼在 rpm 構建過程中 buildroot 代表 /usr/local。一旦設定了 buildroot,就可以使用 rpm_build_root 環境變數訪問其值。應該始終在 spec 檔案中設定 buildroot 並檢查該目錄的內容,確認包即將安裝的內容。

%description

this is a software for ****** your life more beautiful!

%prep

%setup -q

#%setup -q

是乙個%prep巨集,用於自動解壓 source 中的特定 tarball 壓縮檔案

%build

g++ -o hello hello.cpp

%install

install -m 755 hello /usr/local/bin/hello

%files

/usr/local/bin/hello

把寫好的spec檔案放入specs資料夾裡

隨便找個地方新建資料夾 hello-0.1,然後編寫hello.cpp。

#includeusing namespace std;

int main()

{ cout<

$ tar zcvf hello-0.1.tar.gz hello-0.1

hello-0.1/

hello-0.1/hello.c

$ mv hello-0.1.tar.gz /usr/src/redhat/sources

在specs目錄下進行打包

驗證下是否成功了

參考:

rpm打包的流程包括以下哪些 RPM打包流程

一 rpm打包工具安裝 yum install rpm build yum install rpmdevtools 二 工具的使用方法 1.建立資料夾 root localhost rpmdev setuptree root localhost cd root root localhost ls a...

修改RPM重新打包

一 安裝軟體包 1.安裝rpmbuild yum install rpm build 2.安裝gcc yum install gcc yum utils 3.配置rpm編譯目錄 vi rpmmacros topdir data rpmbuild 二 建立檔案 1.建立目錄並解壓rpmrebuild檔...

RPM包修訂,重新打包

專案有需求,需要自己重新編譯nginx,新增一些模組,需要生成rpm包,這網上二進位制的nginx rpm包,可以根據該rpm包,修改一下spec檔案,再重新打包即可。具體步驟如下所示 1.安裝相關工具,主要是rpmbuild等相關工具 wget tar zxvf rpmrebuild 2.14.t...