導航:首頁 > 源碼編譯 > 源碼包製作rpm

源碼包製作rpm

發布時間:2023-02-15 14:14:45

1. tar.gz和tar.bz2的包 怎麼轉換成 rpm的包

我覺得應該有tar2rpm之類的工具,可是我一般都是用RPMBuilder來打包的,它功能就是打包已經存在的文件。

這樣你需要把tar.gz類似的源碼包,直接解壓編譯生成最終的目標文件,然後用RPMBuilder按下邊的步驟簡單操作就好了:

RPMBuilder,開源C++的,基於linux。很easy:
>rpmbuilder # 執行第一次是為了生成RPMBuilder.xml配置文件
>vi RPMBuilder.xml # 簡單配置一下
>rpmbuilder # 開始打包
搞定!
去下邊的link去下載rpm包,安裝,直接用~
Links:
https://sourceforge.net/projects/xml2rpm/files/

2. 如何編譯內核及製作RPM包

前言

要編譯自內核能各種同答案列舉:
1 研究習內核源碼
2 支持新硬體或者打某項內核功能
3 升級內核更新版本
4 按自要求定製優化內核功能
種種...
折騰需要理由我說面直接進入主題
編譯式
編譯內核種式kernel.org載選擇載需要版本內核源碼
:linux-2.6.32-rc1.tar.bz2載內核源碼/home/user/目錄進入載目錄解壓壓縮

#cd /home/user/
#tar -xjvf linux-2.6.32-rc1.tar.bz2

二 准備編譯環境

始前首先確認面軟體包已經安裝(編譯標普華4.0直接全部安裝CD3保證條件)
* rpmdevtools
* yum-utils
fedora系統使用命令安裝:
#yum install yum-utils rpmdevtools

1. rpmbuild命令工作所需目錄樹面命令完該操作手建立目錄樹
命令建立:
#rpmdev-setuptree

命令/usr/src/rpmbuild/目錄目錄結構(位置沒則能前用戶目錄).

# tree /usr/src/rpmbuild/
rpmbuild/
|-- BUILD
|-- RPMS
|-- SOURCES
|-- SPECS
`-- SRPMS
面部rpmbuild環境建立rpm
3. 安裝內核源碼包需要依賴組件(跳步操作)

su -c 'yum-builddep kernel-.src.rpm'
4.安裝內核源碼系統默認目錄/usr/src/neoshine:

rpm -Uvh kernel-.src.rpm

三 配置內核(config配置文件)

面介紹何解源碼包並修改配置重新打包源碼
1. 解源碼包並打所補丁BUILD目錄

cd ~/rpmbuild/SPECS
rpmbuild -bp --target=`uname -m` kernel.spec

kernel源碼找:

/usr/src/neoshine/rpmbuild/BUILD/kernel-/linux-. directory

配置內核源碼
1. 進入內核源碼:

cd ~/rpmbuild/BUILD/kernel-2.6.$ver/linux-2.6.$ver.$arch/
2. 復制/boot/config*配置文件源碼目錄,config文件已經配或者其備份kernel配置文件:

cp /boot/config2.6- 2.6.$ver.$arch .config
3. 先檢查kernel配置新增選項:

make oldconfig
4. 定製內核功能關閉initrd支持選項執行圖形化內核配置工具:

make menuconfig
註:generic setup選項找initial RAM system and RAM disk(initramfs and initrd) support 項取消編譯同確保跟文件系統應驅系統所存儲器應驅都已經編譯內核(否則啟系統).

5. .config文件第行改面內容(注意:沒行面編譯報錯)

# i386
6. 拷貝.configSOURCES/:

cp .config ../SOURCES/config-$arch

四 編譯新內核

1. 面始准備編譯新內核包
打SPEC/kernel.spec

vim SPEC/kernel.spec
改變面行內容定製自內核擴展名(fc10類):

%define buildid .
步新內核rpm包程需要編譯內核源碼包
使用面命令新內核源碼包
rpmbuild -bb --with baseonly --without debuginfo --target=`uname -m` kernel.spec

參數說明:bb表示編譯二進制包即源碼包without debuginfo 表示沒調試信息
target=`uname -r`表示應前平台內核包
面命令功執行完BUILD/i686目錄新內核安裝包

五 安裝新內核

rpm -ivh kernel-$ver-$arch.rpm
步操作自安裝內核boot目錄安裝應內核模塊/lib/moles/目錄並且新內核應grub引導菜單
修改grub引導菜單格式

title new kernel
kernel /boot/vmlinuz-$ver-$arch root=/dev/sdax(hdax)

注意處要使用uuid指定跟文件系統(能掛載根區導致內核死機)要再加顯示相關參數(內核支持應設置看黑黑屏幕)
至禁用initrd新內核配置安裝完畢

3. 如何從Linux源碼創建RPM或DEB包

在Linux系統操作中,因為某些原因而想要直接從源碼創建安裝的軟體包,下面就如何在Linux系統下從源碼創建RPM或DEB包,以便將來可以更容易的卸載程序。

如果已經從它的源碼運行「make install」安裝了linux程序。想完整移除它將變得真的很麻煩,除非程序的開發者在Makefile里提供了uninstall的目標設置。否則必須在安裝前後比較系統里文件的完整列表,然後手工移除所有在安裝過程中加入的文件。

這時候Checkinstall就可以派上使用。Checkinstall會跟蹤install命令行所創建或修改的所有文件的路徑(例如:「make install」、「make install_moles」等)並建立一個標準的二進制包,讓能用發行版的標准包管理系統安裝或卸載它,(例如Red Hat的yum或者Debian的apt-get命令)。已知它在 Slackware、SuSe、Mandrake 和 Gentoo 上也工作很好,請參考其官方文檔。

在這只集中在紅帽子和Debian為基礎的發行版,並展示怎樣從源碼使用Checkinstall創建一個RPM和DEB軟體包

在linux上安裝Checkinstall

在Debian及其衍生發行版上安裝Checkinstall:

# aptitude install checkinstall

在紅帽子的發行版上安裝Checkinstall,你需要下載一個已經打包好的Checkinstall rpm包(例如:從 http://rpm.pbone.net/找到),不過它已經從Repoforge庫里刪除了。這個包是針對Cent OS6的,不過也可在Cent OS7里工作。

# wget

ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-1.6.2-3.el6.1.x86_64.rpm# yum install checkinstall-1.6.2-3.el6.1.x86_64.rpm

一旦checkinstall安裝好,你就可以用下列格式創建一個特定的軟體包

# checkinstall 《install-command》

如果沒有參數,默認安裝命令「make install」將被使用

用Checkinstall創建一個RPM或DEB包

在這個例子里,我們將創建一個htop包,這是一個linux互動式文本模式進程查看器(類似 top)。

首先,讓我們從項目的官方網站下載源代碼,作為一個好的習慣,我們存儲源碼包到/usr/local/src下,並解壓它。

# cd /usr/local/src# wget http://hisham.hm/htop/releases/1.0.3/htop-1.0.3.tar.gz# tar xzf htop-1.0.3.tar.gz# cd htop-1.0.3

讓我們看看htop的安裝命令是什麼,以便我們能用Checkinstall命令調用它,如下面所示,htop用「make install」命令安裝。

# 。/configure# make install

因此,要創建一個htop安裝包,我們可以不帶任何參數的調用checkinstall,這將使用「make install」命令創建一個包。在這個過程中, checkinstall命令會問你幾個問題。

簡而言之,如下命令會創建一個htop包:

# 。/configure# checkinstall

「Should I create a default set of package docs?(我會創建一個默認設置的包文件?)」,回答「Y」:

此可以輸入一個包的簡短描述,然後按兩次回車:

輸入一個數字以修改下面的任何值或ENTER繼續:

上面就來Linux系統下使用checkinstall從源碼創建RPM或DEB包的方法。

4. 如何使用rpmbuild編譯源碼RPM包

1、查看操作系統版本和內核版本

2、創建相關目錄

/usr/src/redhat/SOURCES //存放源代碼,補丁,圖標等文件。/usr/src/redhat/SPECS //存放用於管理rpm製作進程的spec文件。/usr/src/redhat/BUILD //解壓後的文件存放在這里。/usr/src/redhat/RPMS //存放由rpmbuild製作好的二進制包。/usr/src/redhat/SRPMS //存放由rpmbuild製作好的源碼包。

3、下載Nginx源碼包

下載源碼包到SOURCES目錄,不需要解壓。

4、手工創建SPEC文件,由於spec文件是由spec語言編寫的,請注意spec語言的語法。

SPEC文件內容如下:

#Example Spec File For Nginx# Edited By LaoXu 7.Mar.2013#Summary: High Performance Web ServerName: nginxVersion: 1.3.9Release: el5License: GPLGroup: Applications/ServerSource:URL:Distribution: LinuxPackager: XuYuanzhen <absolutey.>%descriptionnginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server%preprm -rf $RPM_BUILD_DIR/nginx-1.3.9zcat $RPM_SOURCE_DIR/nginx-1.3.9.tar.gz | tar -xvf -%buildcd nginx-1.3.9./configure --prefix=/usr/local/nginxmake%installcd nginx-1.3.9make install%preunif [ -z "`ps aux | grep nginx | grep -v grep`" ];thenkillall nginx >/dev/nullexit 0fi%files/usr/local/nginx5、開始RPM製作

5. 怎樣製作RPM包

RPM是RedHat Package Manager(RedHat軟體包管理工具)的縮寫,是一種用於互聯網下載包的打包及安裝工具,它包含在某些Linux分發版中。它生成具有.RPM擴展名的文件。使用rpm安裝軟體和管理軟體非常的方便。而這節我們不是介紹如何使用rpm安裝或管理軟體,而是如何把源碼製作成rpm包。
我們日常工作一般會使用源碼包安裝軟體,因為源碼包相對靈活多變,操作自由,唯一的問題就是容易編譯出錯。rpm包安裝簡單方便,唯一問題就是不能自定義參數且更新的速度相對於源碼慢很多。

1、查看操作系統版本和內核版本

2、創建相關目錄

/usr/src/redhat/SOURCES //存放源代碼,補丁,圖標等文件。
/usr/src/redhat/SPECS //存放用於管理rpm製作進程的spec文件。
/usr/src/redhat/BUILD //解壓後的文件存放在這里。
/usr/src/redhat/RPMS //存放由rpmbuild製作好的二進制包。
/usr/src/redhat/SRPMS //存放由rpmbuild製作好的源碼包。

3、下載Nginx源碼包

下載源碼包到SOURCES目錄,不需要解壓。

4、手工創建SPEC文件,由於spec文件是由spec語言編寫的,請注意spec語言的語法。

SPEC文件內容如下:
#############################
# Example Spec File For Nginx
# Edited By LaoXu 7.Mar.2013
#############################
Summary: High Performance Web Server
Name: nginx
Version: 1.3.9
Release: el5
License: GPL
Group: Applications/Server
Source: http://nginx.org/download/nginx-1.3.9.tar.gz
URL: http://nginx.org/
Distribution: Linux
Packager: XuYuanzhen <[email protected]>

%description
nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server
%prep
rm -rf $RPM_BUILD_DIR/nginx-1.3.9
zcat $RPM_SOURCE_DIR/nginx-1.3.9.tar.gz | tar -xvf -
%build
cd nginx-1.3.9
./configure --prefix=/usr/local/nginx
make
%install
cd nginx-1.3.9
make install
%preun
if [ -z "`ps aux | grep nginx | grep -v grep`" ];then
killall nginx >/dev/null
exit 0
fi
%files
/usr/local/nginx

6. rpm包都有源代碼嗎

有rpm的源碼包的 使用rpm命令的--recompile和--rebuild可以進行再編譯和構建 rpm --recompile xxx.rpm #這個命令會把源代碼解包並編譯、安裝它,如果用戶使用命令:rpm --rebuild xxx.rpm #在安裝完成後,還會把編譯生成的可執行文件重新包裝成i386.rpm 的RPM軟體包。

7. Linux打包Python文件為RPM格式

花費了將近一周的時間,才把rpm打包弄好.不能說已經瞭然於胸,但至少踩過了很多坑.接下來就順順在打包過程中的二三事.剛開始接到任務的時候,一臉懵逼.

作為專業的 JAVA Web 程序員,確定要讓我干這么跨界的事情嗎?之前自己雖然也安裝過其他的rpm包,但我保證,我只是看說明書,跟著一路弄下來的.並且之後對它可是有多遠躲多遠的.不過考慮到自己的title,我知道那不應該是我關心的事情.那麼問題來了,什麼是rpm呢?

看到了rpm是什麼,我們就來了解一下RPM相關的命令

本來准備直接 rpm -help 讓大家看看相關參數的,但是考慮到內容太多,感興趣的 自行點擊 .這里放幾個常用的命令.

至此,基本的rpm基礎已經了解到了.那麼關鍵的問題來了,如何製作RPM

把製作RPM,道上傳聞有多種方式,我自己測過的有兩種

注意:無論上述那種都需要 setup.py 及 setup.cfg 文件,描述相關的軟體信息.

我自己使用的是第二種rpmbuild,

至此就可以歡快的進行打包了.執行

以上命令運行成功後會在當前用戶目錄下生成rpmbuild目錄,該目錄會包含以下子目錄

--BUILD #編譯之前,如解壓包後存放的路徑 --BUILDROOT #編譯後存放的路徑 --RPMS #打包完成後rpm包存放的路徑 --SOURCES #源包所放置的路徑 --SPECS #spec文檔放置的路徑 --SPRMS #源碼rpm包放置的路徑

安裝成功後,即可直接執行相關命令了.

rpmbuild

8. 如何將源代碼打成rpm包

不管你想打什麼RPM包,這個應該能幫上你。

RPMBuilder, 一個Linux下的C++開源工具,自己make和make install. 然後用命令rpmbuilder:
> rpmbuilder # 此次運行,生成一個RPMBuilder.xml
> vi RPMBuilder.xml # 配置
> rpmbuilder # 打包
完成!
Link:
https://sourceforge.net/projects/xml2rpm/files/rpmbuilder-1.0.1/

9. 如何從Linux源碼創建RPM或DEB包

你好,這個需要安裝Checkinstall創建一個RPM和DEB軟體包。
在linux上安裝Checkinstall,在Debian及其衍生發行版上安裝Checkinstall:
# aptitude install checkinstall
在紅帽子的發行版上安裝Checkinstall,需要下載一個已經打包好的Checkinstall rpm包。
# wget
ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories
/home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-1.6.2-3.el6.1.x86_64.rpm#
yum install checkinstall-1.6.2-3.el6.1.x86_64.rpm
一旦checkinstall安裝好,就可以用下列格式創建一個特定的軟體包
# checkinstall 《install-command》

如果沒有參數,默認安裝命令「make install」將被使用Checkinstall創建一個RPM或DEB包。在這個例子里,將創建一個htop包,這是一個linux互動式文本模式進程查看器(類似 top)。
首先,讓從項目的官方網站下載源代碼,作為一個好的習慣,存儲源碼包到/usr/local/src下,並解壓。

10. 如何將apache源碼打成rpm安裝包

這些命令一半都是製作rpm包和tar.gz調試時用的,一般的用戶不會用到這些命令 一半安裝rpm包時用命令: rpm -ivh XX.rpm 卸載命令: rpm -e XX.rpm 安裝和卸載過程其實就已經執行了上面的命令,至於具體執行那些命令

閱讀全文

與源碼包製作rpm相關的資料

熱點內容
鄭州前端程序員私活有風險嗎 瀏覽:10
小型螺桿機壓縮機 瀏覽:516
成人解壓最好的方法 瀏覽:48
最小製冷壓縮機 瀏覽:488
xampp支持python 瀏覽:367
深圳周立功單片機 瀏覽:56
圓上點與點之間角度演算法 瀏覽:863
怎麼知道微信關聯了哪些app 瀏覽:696
android事件驅動 瀏覽:882
簽約大屏系統源碼 瀏覽:784
安卓系統怎麼轉入平板 瀏覽:425
安卓手機相機怎麼提取文字 瀏覽:219
如何查看伺服器映射的外網地址 瀏覽:985
圖片刺綉演算法 瀏覽:675
阿里雲伺服器沒有實例 瀏覽:605
綿陽有沒有什麼app 瀏覽:848
怎麼用游俠映射伺服器 瀏覽:919
為什麼無意下載的app無法刪除 瀏覽:306
word2007打開pdf 瀏覽:117
php正則class 瀏覽:738