導航:首頁 > 源碼編譯 > 如何用原碼編譯rmp包

如何用原碼編譯rmp包

發布時間:2023-05-30 05:17:23

㈠ centos中怎麼提取rpm中源碼進行編譯

如果下載的rpm包不是源碼包,則可以直接
rpm -ivh xxxx.rpm 來進行安裝。
如果是源碼包可以通過
rpm--recompilexxx.rpm #這個命令會把源代碼解包並編譯、安裝它,如果用戶使用命令:
rpm--rebuild xxx.rpm#在安裝完成後,還會把編譯生成的可執行文件重新包裝成i386.rpm 的RPM軟體包。

linux下製作安裝rpm包的方法

一、製作rpm包
以rp-pppoe-3.10為列進行製作過程。
1.下載rp-pppoe-3.10.tar.gz
[root@localhost
home]#
pwd
/home
[root@localhost
home]#
2.解壓
#
tar
zxvf
rp-pppoe-3.10.tar.gz
3.
#
cp
/home/rp-pppoe-3.10/rp-pppoe.spec
/usr/src/redhat/SOURCES/
#
cp
/home/rp-pppoe-3.10.tar.gz
/usr/src/redhat/SOURCES/
3.製作rpm包
#
cd
/usr/src/redhat/SOURCES/
#
rpmbuild
-bb
rp-pppoe.spec
<==僅編譯成
RPM
檔案
#
rpmbuild
-ba
rp-pppoe.spec
<==編譯並同時產生
RPM

SRPM
檔案
如果編譯成功,就已經製作好rp-pppoe的rpm包了,查看一下
[root@localhost
i386]#
pwd
/usr/src/redhat/RPMS/i386
[root@localhost
i386]#
ll
total
420
-rw-r--r--
1
root
root
186322
01-06
11:09
rp-pppoe-3.10-1.i386.rpm
-rw-r--r--
1
root
root
150356
01-06
11:09
rp-pppoe-debuginfo-3.10-1.i386.rpm
-rw-r--r--
1
root
root
63319
01-06
11:09
rp-pppoe-gui-3.10-1.i386.rpm
[root@localhost
i386]#
二、安裝rpm包
1.查看系統有五安裝過rp-pppoe。
[root@localhost
i386]#
rpm
-qa
rp-pppoe
rp-pppoe-3.5-1
2.刪除系統已經安裝過的rpm包
[root@localhost
i386]#
rpm
-e
rp-pppoe
[root@localhost
i386]#
rpm
-qa
rp-pppoe
3.安裝剛才製作好的rpm包
[root@localhost
i386]#
ls
rp-pppoe-3.10-1.i386.rpm
rp-pppoe-gui-3.10-1.i386.rpm
rp-pppoe-debuginfo-3.10-1.i386.rpm
[root@localhost
i386]#
rpm
-ivh
rp-pppoe-3.10-1.i386.rpm
Preparing...
###########################################
[100%]
1:rp-pppoe
###########################################
[100%]
[root@localhost
i386]#
rpm
-qa
rp-pppoe
rp-pppoe-3.10-1
[root@localhost
i386]#
ls
/etc/ppp/pppoe-server-options
/etc/ppp/pppoe-server-options
以上信息說明安裝成功了哦。
三、錯誤處理
在製作rpm(1.3步)的時候出現錯:
RPM
build
errors:
Installed
(but
unpackaged)
file(s)
found:
解決辦法:
將/usr/lib/rpm/macros

%__check_files
/usr/lib/rpm/check-files
%{buildroot}
注釋掉

㈢ 如何從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包的方法。

㈣ 如何從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下,並解壓。

㈤ 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/

㈥ 如何製作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

㈦ 如何編譯內核及製作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新內核配置安裝完畢

㈧ linux如何安裝rpm包

1、點擊文件,點擊文件這里download目錄。或者是rmp包所在的目錄下。

閱讀全文

與如何用原碼編譯rmp包相關的資料

熱點內容
伺服器怎麼用不會斷電 瀏覽:298
主從伺服器有什麼用 瀏覽:213
jstlpdf 瀏覽:14
安卓原神在哪個app下載 瀏覽:808
單片機編程技術什麼意思 瀏覽:104
e點課堂源碼 瀏覽:45
免費打擊墊app哪個好 瀏覽:532
程序員必裝的6款軟體 瀏覽:750
基於單片機的遙控器設計 瀏覽:521
安卓如何取消圓圖標 瀏覽:11
收件伺服器怎麼樣 瀏覽:48
建築設計規范pdf 瀏覽:98
如何合並兩個pdf 瀏覽:174
刷機包必須要解壓的單詞 瀏覽:483
android課表實現 瀏覽:864
頭條app在哪裡能看見有什麼活動 瀏覽:511
冰櫃壓縮機電容80歐 瀏覽:609
安卓各個版本圖標什麼樣 瀏覽:152
無錫哪裡有製作手機app 瀏覽:538
php字元串轉json數組 瀏覽:6