當前位置:首頁 » 編程軟體 » 編譯軟體包

編譯軟體包

發布時間: 2024-05-09 05:13:46

Ⅰ 如何編譯OpenWrt

准備工作
在開始編譯Openwrt之前需要您做些准備工作;與其他編譯過程一樣,類似的編譯工具和編譯環境是必不可少的:
一個構建OpenWrt映像的系統平台,簡單說就是准備一個操作系統(比如Ubuntu、Debian等);
確保安裝了所需的依賴關系庫, (在debian系統中就是安裝各種需要的軟體包)
OpenWrt源代碼副本
首先, 開機登陸到支持編譯Openwrt的操作系統(廢話了)。實體機或者虛擬機(Vmware 或者 Qemu)里的操作系統都行,這里推薦使用linux系統。 bsd和mac osx系統也可以編,但不推薦,且未驗證是否可編譯成功。下文假定您使用的是Debian操作系統,使用 apt-get 來管理包. 替代的選擇是 Ubuntu (分支 Kubuntu, Xubuntu 等即可)。
第二步, 就是安裝所需要的各種軟體包, 包括編譯器,解壓工具,特定的庫等. 這些工作可以簡單的通過鍵入以下命令 (通常需要root 或者是 sudo 許可權),以root許可權安裝下列軟體包(可能並不完整,會有提示,提示缺少即裝就可以了):
32位(x86)請執行下列命令:
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev

64位(x86_64)請執行下列命令(多裝了哪些庫或軟體包呢?請您仔細看一看哦):
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev ia32-libs \
lib32gcc1 libc6-dev-i386

參考 本列表中 所列的編譯環境所需要軟體包或庫。
某些依賴的為庫或軟體包也許操作系統中已經安裝過,此時apt-get會作出提示(提示您忽略或重新安裝的),別緊張,放輕鬆些,編譯Openwrt不會像編譯DD-WRT那樣難的(至少本人是體會到了編譯DD-WRT的難)。
最後下載一份完整的 Openwrt 源碼到編譯環境中。關於Openwrt的源代碼下載,途徑有二,一是通過 svn ,一是通過 git,建議使用 svn ,因為Openwrt主要以 svn 來維護Openwrt系統的版本。另外,請注意Openwrt中不同的分支版本,一個是用得較多的開發快照,俗稱 trunk,二是穩定版,俗稱 backfire。

Ⅱ 如何定製安裝linux軟體

在Linux系統上定製安裝軟體主要有以下幾個步驟:

1. 下載軟體包:首先需要下載軟體包,可以從官方網站或其他可信源獲取。通常軟體包都以.tar.gz或.tar.bz2的壓縮敬悄輪格式提供。

2. 解壓軟體包:使用解壓命令將軟體包解壓到指定的目錄或文件夾中。例如,使用tar命令解壓.tar.gz格式的軟體包可以使用以下命令:tar -zxvf package.tar.gz。

3. 配置軟體包:進入解壓後的文件夾,使用./configure命令進行配置。該命令將檢查系統環境,確認所有依賴項都已安裝,並生成Makefile文件。

4. 編譯軟體包:使用make命令編譯軟體包。該命令將根據Makefile文件中的指示編譯源代碼運或,並生成可執行文件。

5. 安裝軟體包:使用make install命令將軟體包安裝到系統中。該命令將復制可執行文件和其他必要文件到指定的目錄,例如/usr/local/bin。

6. 清理安裝包:使用make clean命令清理編譯過程中生成的中間文件和臨時文件。

需要注意的是,定製安裝Linux軟體需要一定的Linux系統亮信基礎知識和命令行操作經驗。如果你不熟悉Linux系統,建議先學習相關知識再進行操作。同時,安裝軟體時應注意軟體包的來源和版本,避免下載和安裝不安全的軟體包。

Ⅲ 如何在linux中安裝gcc編譯器

2004年4月20日最新版本的GCC編譯器3.4.0發布了。目前,GCC可以用來編譯C/C++、FORTRAN、java、OBJC、ADA等語言的程序,可根據需要選擇安裝支持的語言。GCC 3.4.0比以前版本更好地支持了C++標准。本文以在Redhat Linux上安裝GCC3.4.0為例,介紹了GCC的安裝過程。

安裝之前,系統中必須要有cc或者gcc等編譯器,並且是可用的,或者用環境變數CC指定系統上的編譯器。如果系統上沒有編譯器,不能安裝源代碼形式的GCC 3.4.0。如果是這種情況,可以在網上找一個與你系統相適應的如RPM等二進制形式的GCC軟體包來安裝使用。本文介紹的是以源代碼形式提供的GCC軟體包的安裝過程,軟體包本身和其安裝過程同樣適用於其它Linux和Unix系統。

系統上原來的GCC編譯器可能是把gcc等命令文件、庫文件、頭文件等分別存放到系統中的不同目錄下的。與此不同,現在GCC建議我們將一個版本的GCC安裝在一個單獨的目錄下。這樣做的好處是將來不需要它的時候可以方便地刪除整個目錄即可(因為GCC沒有uninstall功能);缺點是在安裝完成後要做一些設置工作才能使編譯器工作正常。在本文中我採用這個方案安裝GCC 3.4.0,並且在安裝完成後,仍然能夠使用原來低版本的GCC編譯器,即一個系統上可以同時存在並使用多個版本的GCC編譯器。

按照本文提供的步驟和設置選項,即使以前沒有安裝過GCC,也可以在系統上安裝上一個可工作的新版本的GCC編譯器。

1. 下載

在GCC網站上(http://gcc.gnu.org/)或者通過網上搜索可以查找到下載資源。目前GCC的最新版本為 3.4.0。可供下載的文件一般有兩種形式:gcc-3.4.0.tar.gz和gcc-3.4.0.tar.bz2,只是壓縮格式不一樣,內容完全一致,下載其中一種即可。

2. 解壓縮

根據壓縮格式,選擇下面相應的一種方式解包(以下的「%」表示命令行提示符):

% tar xzvf gcc-3.4.0.tar.gz
或者
% bzcat gcc-3.4.0.tar.bz2 | tar xvf -

新生成的gcc-3.4.0這個目錄被稱為源目錄,用${srcdir}表示它。以後在出現${srcdir}的地方,應該用真實的路徑來替換它。用pwd命令可以查看當前路徑。

在${srcdir}/INSTALL目錄下有詳細的GCC安裝說明,可用瀏覽器打開index.html閱讀。

3. 建立目標目錄

目標目錄(用${objdir}表示)是用來存放編譯結果的地方。GCC建議編譯後的文件不要放在源目錄${srcdir]中(雖然這樣做也可以),最好單獨存放在另外一個目錄中,而且不能是${srcdir}的子目錄。

例如,可以這樣建立一個叫 gcc-build 的目標目錄(與源目錄${srcdir}是同級目錄):

% mkdir gcc-build
% cd gcc-build

以下的操作主要是在目標目錄 ${objdir} 下進行。

4. 配置

配置的目的是決定將GCC編譯器安裝到什麼地方(${destdir}),支持什麼語言以及指定其它一些選項等。其中,${destdir}不能與${objdir}或${srcdir}目錄相同。

配置是通過執行${srcdir}下的configure來完成的。其命令格式為(記得用你的真實路徑替換${destdir}):

% ${srcdir}/configure --prefix=${destdir} [其它選項]

例如,如果想將GCC 3.4.0安裝到/usr/local/gcc-3.4.0目錄下,則${destdir}就表示這個路徑。

在我的機器上,我是這樣配置的:

% ../gcc-3.4.0/configure --prefix=/usr/local/gcc-3.4.0 --enable-threads=posix --disable-checking --enable--long-long --host=i386-redhat-linux --with-system-zlib --enable-languages=c,c++,java

將GCC安裝在/usr/local/gcc-3.4.0目錄下,支持C/C++和JAVA語言,其它選項參見GCC提供的幫助說明。

5. 編譯

% make

這是一個漫長的過程。在我的機器上(P4-1.6),這個過程用了50多分鍾。

6. 安裝

執行下面的命令將編譯好的庫文件等拷貝到${destdir}目錄中(根據你設定的路徑,可能需要管理員的許可權):

% make install

至此,GCC 3.4.0安裝過程就完成了。

6. 其它設置

GCC 3.4.0的所有文件,包括命令文件(如gcc、g++)、庫文件等都在${destdir}目錄下分別存放,如命令文件放在bin目錄下、庫文件在lib下、頭文件在include下等。由於命令文件和庫文件所在的目錄還沒有包含在相應的搜索路徑內,所以必須要作適當的設置之後編譯器才能順利地找到並使用它們。

6.1 gcc、g++、gcj的設置

要想使用GCC 3.4.0的gcc等命令,簡單的方法就是把它的路徑${destdir}/bin放在環境變數PATH中。我不用這種方式,而是用符號連接的方式實現,這樣做的好處是我仍然可以使用系統上原來的舊版本的GCC編譯器。

首先,查看原來的gcc所在的路徑:

% which gcc

在我的系統上,上述命令顯示:/usr/bin/gcc。因此,原來的gcc命令在/usr/bin目錄下。我們可以把GCC 3.4.0中的gcc、g++、gcj等命令在/usr/bin目錄下分別做一個符號連接:

% cd /usr/bin
% ln -s ${destdir}/bin/gcc gcc34
% ln -s ${destdir}/bin/g++ g++34
% ln -s ${destdir}/bin/gcj gcj34

這樣,就可以分別使用gcc34、g++34、gcj34來調用GCC 3.4.0的gcc、g++、gcj完成對C、C++、JAVA程序的編譯了。同時,仍然能夠使用舊版本的GCC編譯器中的gcc、g++等命令。

6.2 庫路徑的設置

將${destdir}/lib路徑添加到環境變數LD_LIBRARY_PATH中,最好添加到系統的配置文件中,這樣就不必要每次都設置這個環境變數了。

例如,如果GCC 3.4.0安裝在/usr/local/gcc-3.4.0目錄下,在RH Linux下可以直接在命令行上執行或者在文件/etc/profile中添加下面一句:

setenv LD_LIBRARY_PATH /usr/local/gcc-3.4.0/lib:$LD_LIBRARY_PATH

7. 測試

用新的編譯命令(gcc34、g++34等)編譯你以前的C、C++程序,檢驗新安裝的GCC編譯器是否能正常工作。

8. 根據需要,可以刪除或者保留${srcdir}和${objdir}目錄。

Ⅳ CentOS緋葷粺涓嬭蔣浠跺寘鐨勫埗浣滄柟娉曞拰榪囩▼

鎬葷殑鎯呭喌涓婰inux涓嬭蔣浠跺畨瑁呬富瑕佹湁涓夌嶆柟寮忥細
涓縐嶆槸婧愮爜瀹夎咃紝闇瑕佺敤鎴瘋嚜宸辨墜鍔ㄧ紪璇
鍙︿竴縐嶆槸RPM鍖(RedHat Linux Packet Manager),閫氳繃RPM鍛戒護灝卞彲浠ュ疄鐜板畨瑁
榪樻湁涓縐嶄負*.bin鏂囦歡錛屽畨瑁呮柟娉曚笌Windows涓嬬殑瀹夎呰繃紼嬬被浼
閫氬父鎯呭喌涓婰inux 瀹夎呰蔣浠朵富瑕侀氳繃浠ヤ笅涓ょ嶆柟寮
鈶 鏂囦歡鍚嶅艦濡倄xx.i386.rpm ,杞浠跺寘浠ヤ簩榪涘埗褰㈠紡鍙戝竷.
鈶 鏂囦歡鍚嶅艦濡倄xx.tar.gz ,杞浠跺寘澶氫互婧愮爜鐨勫艦寮忓彂甯.
Linux杞浠跺寘綆$悊鍙浠ュ垎涓轟笁綾伙細浜岃繘鍒跺寘鐨勭$悊錛屾簮浠g爜鍖呯殑綆$悊錛岃剼鏈瀹夎
鍙﹀栧煎緱娉ㄦ剰鐨勬槸鐩鍓嶅瓨鍦ㄥ悇縐峀inux鐨勫彂琛岀増鑾峰彇鍜屽畨瑁呰蔣浠剁殑鏂瑰紡涔熸湁寰堝氫緥濡
銆愩憆edhat/centos鐨剏um瀹夎(鏈変笓闂ㄧ殑闀滃儚婧)
銆愩慤buntu/Fedora/Debian鐨剆udo apt-get閫傜敤浜巇eb鍖呰繘琛岀$悊瀹夎
銆愩戜篃鏈夌殑杞浠舵槸閫氳繃鍒葷洏鍔犲瘑鐨勫艦寮忕劧鍚庤繘琛屽畨瑁呯殑(渚嬪俢nyunwei)
銆愩戝湪緋葷粺榪愮淮綆$悊浜哄憳鏂歸潰涔熸湁閫氳繃ssh銆丆/C++璇璦鎴栬卲y鎵ц岀殑涓浜涜蔣浠跺懡浠よ繘琛岃嚜鍔ㄥ寲綆$悊鐨勫簲鐢錛岃繖閲屽氨涓嶅仛璇︾粏浠嬬粛浜嗐
涓嬮潰鏈変竴寮犲浘鍙浠ユ竻鏅板湴琛ㄧずlinux杞浠跺簲鐢ㄧ殑鏋舵瀯鍏崇郴錛

   銆銆鍦↙inux鍚鍔ㄧ殑鏃跺欍傞栧厛浼氬惎鍔ㄥ唴鏍(kernel)錛屽唴鏍告槸涓孌佃$畻鏈虹▼搴忥紝榪欎釜紼嬪簭鐩存帴綆$悊綆$悊紜浠訛紝鍖呮嫭CPU銆佸唴瀛樼┖闂淬佺‖鐩樻帴鍙c佺綉緇滄帴鍙g瓑絳夈傛墍鏈夌殑璁$畻鏈烘搷浣滈兘瑕侀氳繃鍐呮牳浼犻掔粰紜浠躲傛垜浠鍙浠ョ湅鍒幫紝Linux鍒╃敤kernel瀹炵幇杞紜浠剁殑瀵硅瘽銆傞氳繃緋葷粺璋冪敤鐨勮繖涓閲嶈佺殑鎺ュ彛錛孡inux灝嗕笂灞傜殑搴旂敤涓庝笅灞傜殑kernel瀹屽叏鍒嗙誨紑錛屼負紼嬪簭鍛橀殣鈃忎簡搴曞眰鐨勫嶆潅鎬(鐩稿簲鐨勶紝涔熸彁楂樹簡涓婂眰搴旂敤鐨勫彲縐繪嶆)銆傚綋鎴戜滑鍦ㄥ崌綰kernel鐨勬椂鍊欙紝涔熷彲浠ヤ繚鎸佺郴緇熻皟鐢ㄧ殑璇鍙ヤ笉鍙橈紝浠庤岃╀笂灞傚簲鐢ㄤ笉鎰熷彈鍒頒笅灞傜殑鏀瑰彉銆傚簱鍑芥暟鍒╃敤緋葷粺璋冪敤鍒涢犲嚭妯″潡鍖栫殑鍔熻兘錛岃宻hell鍒欐彁渚涗簡涓涓鐢ㄦ埛鐣岄潰錛屽苟璁╂垜浠鍙浠ュ埄鐢╯hell鐨勮娉曠紪鍐欒剼鏈錛屼互鏁村悎紼嬪簭銆傛湁浜嗚繖浜涙濇兂鎴戜滑鍙浠ュ揩閫熷湴浜嗚Вlinux鐨勮蔣浠跺簲鐢ㄧ殑瀹夎呭拰宸ヤ綔鍘熺悊錛屼篃鍥犳や負浜嗘柟渚垮拰鑾峰彇鏇村氫紒涓氬簲鐢ㄦ垜浠闇瑕佸湪linux緋葷粺涓婂紑鍙戝苟涓旈氳繃婧愮爜緙栬瘧鐨勬柟寮忓埗浣滃悇縐嶈蔣浠跺寘浠庤屼負淇℃伅鍖栨椂浠f湇鍔°
鏈鏂囦富瑕佷粙緇嶆簮鐮佸畨瑁呬笌RPM鍖呯殑瀹夎
婧愮爜鍖呭拰鍟嗕笟杞浠跺寘鏍規嵁鍚勪釜鍏鍙告垨浣滆呯殑瀹為檯鎯呭喌鍑哄彂(鍙浠ユ槸tar絳夋牸寮忕殑鍘嬬緝鍖咃紝涔熷彲浠ユ槸bin鐨勬簮紼嬪簭錛屽彲浠ユ槸宸茬粡緙栬瘧濂戒簡鐨勭洿鎺ユ嬁鏉ヨ繍琛岀殑鏂囦歡錛屼篃鍙浠ユ槸鍏夌洏鉶氭嫙鍖栨枃浠剁瓑鍏朵粬浠嬭川鏉ュ埗浣滃彂甯冪殑iso鏂囦歡絳)灝佽呮垚涓縐嶇壒瀹氱殑鏍煎紡鍙戝竷浠庤岃繘琛岀浉搴旂殑杞浠舵湇鍔°傚叾瀹為氳繃yum鎴栬卪ake install鍛戒護瀹夎呯殑杞浠跺湪緋葷粺閮戒細鑷鍔ㄧ敓鎴恟pm鍖(鍙鏄鍙傛暟鍜屽姛鑳芥ā鍧楀樊寮傚拰涓ヨ皚鐨)
綆浠:
RPM(RedHat Package Manager,綰㈠附瀛愯蔣浠跺寘綆$悊鍣)鐢ㄤ簬杞浠跺寘鐨勫畨瑁呫佹煡璇銆佸崌綰с佹牎楠屻佸嵏杞斤紝浠ュ強鐢熸垚.rpm鏍煎紡鐨勮蔣浠跺寘 RPM鐨勪嬌鐢ㄥ墠
鎸傝澆linux緋葷粺(centos4涓轟緥)鐨勫畨瑁呭厜鐩,褰撶劧涔熷彲鍦ㄧ綉涓婁笅杞藉厤璐圭殑RPM鍖.
# mount/dev/cdrom ---鎸傝澆鍏夌洏
# cd/media/cdrom/CentOS/RPMS ---榪涘叆鍏夌洏涓璕PM鍖呯殑鐩褰(鍙浠ラ氳繃#mount鍛戒護鏉ユ煡鐪嬪厜鐩樼殑鎸傝澆鐐逛竴鑸浼氬湪鏈鍚庝竴琛屾樉紺)
# ls
涓銆佹簮鐮佸寘瀹夎
1銆*.src.rpm褰㈠紡鐨勬簮浠g爜杞浠跺寘
鐢ㄦ硶錛
瀹夎咃細 rpm 鈥搑ebuild *.src.rpm
cd /usr/src/dist/RPMS
Rpm 鈥搃vh *.rpm
鍗歌澆錛 rpm 鈥揺 packagename
2銆.tar.gz錛*.tgz錛*.bz2褰㈠紡杞浠跺寘鐨勫畨瑁
棣栧厛榪涜岃В鍘,鍛戒護濡備笅
tar zxvf *.tar.gz
tar xvfz *.tgz
tar xvfj *.tar.bz2
瑙e帇涔嬪悗榪涘叆瑙e帇鐩褰曪紝鐒跺悗榪涜屼互涓嬫搷浣(涓鑸鎯呭喌錛屽叿浣撶湅杞浠跺寘鐨勬枃浠跺悕)
閰嶇疆錛./configure
緙栬瘧錛歮ake
瀹夎咃細make install
鍗歌澆錛歮ake uninstall
婧愮爜瀹夎呮湁涓瀹氱殑闅懼害錛屼笉鍚岀殑杞浠跺彲鑳芥湁涓嶅悓鐨勫畨瑁咃紝涓鑸鍦ㄨВ鍘嬩箣鍚庡簲璇ュ厛闃呰昏存槑鏂囨。錛屾寜鐓ц存槑榪涜屽畨瑁咃紝涓婇潰璇寸殑鍙鏄涓鑸鎯呭喌銆
浜屻丷PM鍖呭畨瑁
RPM瀹夎呭寘鏍煎紡鏄鐢盧edhat鍏鍙告彁鍑虹殑錛屽ぇ澶х殑綆鍖栦簡Linux涓嬭蔣浠剁殑瀹夎咃紝棣栧厛浠嬬粛涓涓嬮氱敤閫夐」銆
-v錛氭樉紺洪檮鍔犱俊鎮
-vv錛氭樉紺鴻皟璇曚俊鎮
--root directory錛氳㏑PM浠directory浣滀負鏍圭洰褰曪紝榪欐牱棰勫畨瑁呯▼搴忓拰鍚庡畨瑁呯▼搴忛兘浼氬畨瑁呭埌榪欎釜鐩褰曚笅銆
1銆佸畨瑁咃細rpm 鈥搃 file.rpm
Options:
h錛氬畨瑁呮椂杈撳嚭hash璁板彿
test錛氬彧瀵瑰畨瑁呰繘琛屾祴璇曪紝涓嶇湡姝e畨瑁
--persent錛氫互鐧懼垎姣斿艦寮忔樉紺哄畨瑁呰繘搴
--excludedocs錛氫笉瀹夎呰蔣浠跺寘涓鐨勬枃妗
--replacepkgs錛氬己鍒墮噸鏂板畨瑁
--replacefiles錛氭浛鎹㈠睘浜庡叾瀹冭蔣浠跺寘鐨勬枃浠
--force錛氬拷鐣ヨ蔣浠跺寘鍙婃枃妗e啿紿
--ignorearch錛氫笉鏍¢獙杞浠跺寘緇撴瀯
--ignoreos錛氫笉媯鏌ヨ蔣浠跺寘榪愯岀殑鎿嶄綔緋葷粺
--nodeps錛氫笉媯鏌ヤ緷璧栨у叧緋
--noscripts錛氫笉榪愯岄勫畨瑁呭拰鍚庡畨瑁呰剼鏈紼嬪簭
2銆佸垹闄ゃrpm 鈥揺 pkgname
Option:
--test錛氬彧鍋氬垹闄ゆ祴璇曪紝涓嶇湡姝e垹闄
--noscripts錛氫笉榪愯岄勫畨瑁呭拰鍚庡畨瑁呰剼鏈紼嬪簭
--nodeps錛氫笉媯鏌ヤ緷璧栨
娉ㄦ剰錛歱kgname鏄杞浠跺寘鐨勫悕瀛楋紝涓嶆槸rpm鍖呭悕瀛楋紝鑰屾槸瀹夎呭悗杞浠跺寘鐨勫悕瀛楋紝鍙浠ョ敤鏌ヨ㈠懡浠ゆ潵鏌ヨ㈣蔣浠跺寘鍚嶃
3銆佸崌綰сrpm鈥揢(鎴栬呪攗pgrade) file.rpm
Option錛
鍩烘湰涓庡畨瑁呮椂鐨刼ption涓鏍鳳紝鏈夊嚑涓鐗規畩鐨勶細
--oldpackage錛氬厑璁鎬竴涓鏃х増鏈
4銆佹煡璇銆rpm 鈥搎(鎴栬--query)
Option:
-p PACKAGE_FILE錛氭煡璇㈣蔣浠跺寘鐨勬枃浠
-f FIEL錛氭煡璇FILE灞炰簬鍝涓杞浠跺寘
-a錛氭煡璇㈡墍鏈夊畨瑁呯殑杞浠跺寘
-g銆group錛氭煡璇㈠睘浜巊roup緇勭殑杞浠跺寘
--whatproVidesCAPABILITY錛氭煡璇㈡彁渚涗簡CAPABILITY鍔熻兘鐨勮蔣浠跺寘
--whatrequiresCAPABILITY錛氭煡璇㈡墍鏈夐渶瑕丆APABILITY鍔熻兘鐨勮蔣浠跺寘
-i錛氭樉紺鴻蔣浠跺寘鐨勬傝佷俊鎮
-l錛氭樉紺鴻蔣浠跺寘涓鐨勬枃浠跺垪琛
-c錛氭樉紺洪厤緗鏂囦歡鍒楄〃
-s錛氭樉紺烘枃浠跺垪琛
-scripts錛氭樉紺哄畨瑁呫佸嵏杞斤紝鏍¢獙鑴氭湰
--qf錛氫互鐢ㄦ埛鎸囧畾鐨勬柟寮忔煡璇
--mp錛氭樉紺烘瘡涓鏂囦歡鐨勬牎楠屼俊鎮
--proVides錛氭樉紺鴻蔣浠跺寘鎻愪緵鐨勫姛鑳
-R錛氭樉紺鴻蔣浠跺寘闇瑕佺殑鍔熻兘
5銆佹牎楠屽凡緇忓畨瑁呯殑杞浠跺寘 rpm 鈥揤(or 鈥搗erify,or 鈥搚)
Option閫夐」涓庡叾瀹冨懡浠ょ殑綾諱技
6銆佹牎楠岃蔣浠跺寘涓鐨勬枃浠 rpm 鈥揔(or 鈥揷hecksig) file.rpm
Option:
-v錛氭樉紺虹増鏈淇℃伅
-vv錛氭樉紺鴻皟璇曚俊鎮
--rcfile銆FILELIST錛氳劇疆rpmrc 鏂囦歡涓篎ILELIST
7銆佸叾瀹僐PM閫夐」
--rebuilddb錛氶噸寤篟PM璧勬枡搴
--initdb錛氬壋寤轟竴涓鏂扮殑RPM璧勬枡搴
--quiet錛氬敖鍙鑳藉湴鍑忓皯杈撳嚭
--help錛氭樉紺哄府鍔╂枃浠
--version錛氭樉紺篟PM褰撳墠鐗堟湰
涓婇潰鍙鏄瀵瑰父鐢ㄩ夐」鐨勬葷粨錛屽叿浣撹繕鏈変粈涔堥棶棰橈紝鍙浠ョ敤man rpm鍛戒護榪涜屾煡鐪嬶紝瀹樻柟鏂囦歡姘歌繙鏈濂界殑鑰佸笀銆
涓夈*.bin鏍煎紡瀹夎呮枃浠剁殑瀹夎
鍙闇鍙屽嚮鎴栧崟鍑*.bin鏂囦歡灝卞彲浠ユ牴鎹鎻愮ず瀹夎呬簡錛屼笉鍐嶆暦榪般
瑕佹兂鍒朵綔涓涓猂PM鏍煎紡鐨勮蔣浠跺寘,闇瑕佺紪鍐欒蔣浠跺寘鎻忚堪鏂囦歡銆傚叾鏍囧噯鍛藉悕鏍煎紡涓:杞浠跺悕-鐗堟湰鍙-閲婂嚭鍙.spec(鐜板湪澶у氭儏鍐典笅閮芥槸鐩存帴鐢錛氳蔣浠跺悕.spec)錛岃繖涓鏂囦歡,璇︾粏鎻忚堪浜嗘湁鍏寵ヨ蔣浠跺寘鐨勮稿氫俊鎮,濡傝蔣浠跺悕,鐗堟湰,綾誨埆,璇存槑鎽樿,鍒涘緩鏃惰佹墽琛屼粈涔堟寚浠,瀹夎呮椂瑕佹墽琛屼粈涔堟搷浣,浠ュ強杞浠 鍖呮墍瑕佸寘鍚鐨勬枃浠剁瓑絳夈傛湁浜嗚繖涓鏂囦歡,RPM灝卞彲浠ュ埗浣滃嚭鐩稿簲鐨勫寘瑁規枃浠舵潵銆傚綋鐒剁幇鍦ㄤ篃鏈変緥濡係ource rpm榪欐牱寮婧愮殑鍖呭埗浣滆緟鍔╁伐鍏峰彧瑕佷竴涓紼嬪簭婧愬嵆鍙閫氳繃鍚戝間笅涓姝ュ嵆鍙鍒朵綔銆
綆鍗曠殑涓涓鍒朵綔渚嬪瓙錛
鍏跺疄鏈濂界殑鍔炴硶鏄鍋氫釜杞浠跺寘銆傛垜璁板緱 rpm 鍜 debian 閮芥湁蹇閫熸墦鍖呯殑寮婧愯蔣浠跺彲浠ョ洿鎺ユ嬁鏉ヤ嬌鐢ㄥ嵆鍙銆
eg灝唍ginx鐨則ar鍖呭埗浣滀負RPM鍖
1. 涓嬭澆nginx鐨勬簮鐮佸寘
2. 灝嗘枃浠舵斁鍒/usr/src/redhat/SOURCES/鐩褰曚笅
3. 緙栧啓SPEC鏂囦歡
[root@mail SPECS]# vinginx-0.8.35.spec
Summary:the first rpmpackage
Name:nginx
Version:0.8
Release:35
Vendor:[email protected]
License:Share
Group:Applications/Text
Source0:nginx-0.8.35.tar.gz
%description
my test nginx
%prep
tar -zxvf $RPM_SOURCES_DIR/nginx-0.8.35.tar.gz
%build
cd$RPM_BUILD_DIR/nginx-0.8.35
./configure
make
%install
cd$RPM_BUILD_DIR/nginx-0.8.35
make install
%clean
rm -rf$RPM_BUILD_DIR/nginx-0.8.35
%files
%defattr(-,root,root)
/usr/local/nginx/sbin/nginx
%doc $RPM_BUILD_DIR/nginx-0.8.35/README
4. 鍒朵綔RPM鍖
[root@mail SPECS]#rpmbuild -ba nginx-0.8.35.spec
鑻ヨ繍琛屾病鏈夐敊璇錛屽垯浜х敓/usr/src/redhat/RPMS/i386/nginx-0.8-35.i386.rpm鍜/usr/src/redhat/SRPMS/nginx-0.8-35.src.rpm 涓や釜鏂囦歡銆
鎬葷粨錛歳pm鍖呭備綍鍒朵綔涔嬩釜浜虹粡楠
涓 RPM浠嬬粛
RPM 鍓嶆槸RedHat Package Manager 鐨勭緝鍐欙紝鏈鎰忔槸Red Hat 杞浠跺寘綆$悊錛岄【鍚嶆濅箟鏄疪ed Hat 璐$尞鍑烘潵鐨勮蔣浠跺寘綆$悊;鐜板湪搴斾負RPM Package Manager鐨勭緝鍐欍傚湪Fedora 銆丷edhat銆丮andriva銆丼uSE銆乊ellowDog絳変富嫻佸彂琛岀増鏈錛屼互鍙婂湪榪欎簺鐗堟湰鍩虹涓婁簩嬈″紑鍙戝嚭鏉ョ殑鍙戣岀増閲囩敤; RPM鍖呬腑闄や簡鍖呮嫭紼嬪簭榪愯屾椂鎵闇瑕佺殑鏂囦歡錛屼篃鏈夊叾瀹冪殑鏂囦歡;涓涓猂PM 鍖呬腑鐨勫簲鐢ㄧ▼搴忥紝鏈夋椂闄や簡鑷韜鎵甯︾殑闄勫姞鏂囦歡淇濊瘉鍏舵e父浠ュ栵紝榪橀渶瑕佸叾瀹冪壒瀹氱増鏈鏂囦歡錛岃繖灝辨槸杞浠跺寘鐨勪緷璧栧叧緋匯
RPM鍙浠ヨ╃敤鎴風洿鎺ヤ互binary鏂瑰紡瀹夎呰蔣浠跺寘錛屽苟涓斿彲鏇跨敤鎴鋒煡璇㈡槸鍚﹀凡緇忓畨瑁呬簡鏈夊叧鐨勫簱鏂囦歡;鍦ㄧ敤RPM鍒犻櫎紼嬪簭鏃訛紝瀹冨張浼氳仾鏄庡湴璇㈤棶鐢ㄦ埛鏄鍚﹁佸垹闄ゆ湁鍏崇殑紼嬪簭銆傚傛灉浣跨敤RPM鏉ュ崌綰ц蔣浠訛紝RPM浼氫繚鐣欏師鍏堢殑閰嶇疆鏂囦歡錛岃繖鏍風敤鎴峰氨涓嶇敤閲嶆柊閰嶇疆鏂扮殑杞浠朵簡銆俁PM淇濈暀涓涓鏁版嵁搴擄紝榪欎釜鏁版嵁搴撲腑鍖呭惈浜嗘墍鏈夌殑杞浠跺寘鐨勮祫鏂欙紝閫氳繃榪欎釜鏁版嵁搴擄紝鐢ㄦ埛鍙浠ヨ繘琛岃蔣浠跺寘鐨勬煡璇銆俁PM鉶界劧鏄涓篖inux鑰岃捐$殑錛屼絾鏄瀹冨凡緇忕Щ鍊煎埌SunOS銆丼olaris銆丄IX銆両rix絳夊叾瀹僓NIX緋葷粺涓婁簡銆俁PM閬靛驚GPL鐗堟潈鍗忚錛岀敤鎴峰彲浠ュ湪絎﹀悎GPL鍗忚鐨勬潯浠朵笅鑷鐢變嬌鐢ㄥ強浼犳挱RPM銆
浜 RPM鍖呭垎綾
鎴戜釜浜鴻や負rpm鍒嗕負涓ゅぇ綾伙紝
1 浜岃繘鍒剁被鍖咃紝鍖呮嫭rpm瀹夎呭寘(涓鑸鍒嗕負i386鍜寈86絳夊嚑縐)鍜岃皟寮忎俊鎮鍖呯瓑銆
2 婧愮爜綾誨寘錛屾簮鐮佸寘鍜屽紑鍙戝寘搴旇ュ綊浣嶆ょ被銆
瀹冧滑涔嬮棿鐨勫叧緋繪槸錛屾渶鍏堟垜浠鎸塺pm鎵撳寘瑕佹眰鏀歸犺蔣浠墮」鐩婧愮爜錛屽綋絎﹀悎瑕佹眰涔嬪悗灝卞彲浠ヤ嬌鐢╮pmbuild鍛戒護鏉ョ敓鎴愪笉鍚岀殑rpm鍖咃紝鍚屾椂鐢熸垚鐨勫寘涔嬮棿鐗堟湰鏄鐩存帴瀵瑰簲鐨勶紝姣斿傜浉鍚岀殑婧愮爜鍖呭皢鐢熸垚瀹屽叏鐩稿悓鐨勪簩榪涘埗rpm鍖呫傚綋浣犲湪緗戜笂鏌ユ壘rpm鍖呮椂錛屼竴鑸浣犲彲浠ュ湪RPMS鐩褰曚腑鎵懼埌棰勭紪璇戠殑浜岃繘鍒跺寘錛岃屾簮鐮佸寘鍒欎細鍦⊿RPMS鐩褰曞唴銆
鎴戜滑榪欓噷鎻愬埌鐨凴PM鍒朵綔灝辨槸鎸囨敼閫犺蔣浠舵簮浠g爜浣誇箣絎﹀悎RPM鎵撳寘瑕佹眰鐨勮繃紼嬶紝榪欎篃鍙浠ョ瓑浠蜂負RPM婧愮爜鍖呯殑鍒朵綔榪囩▼錛屽洜涓哄綋浣犳湁浜嗘簮鐮佸寘灝卞彲浠ョ洿鎺ョ紪璇戝緱鍒頒簩榪涘埗瀹夎呭寘鍜屽叾浠栦換鎰忓寘銆
涓 RPM鍖呭埗浣滀粙緇
RPM鍖呯殑鍒朵綔錛屽嵆鏄疪PM婧愮爜鍖呯殑鍒朵綔銆
榪欓噷鎴戞兂璇磋碦PM鍖呭伐浣滅殑鍘熺悊錛岃繖灝嗘湁鍔╀簬鍏ㄩ潰鐨勪簡瑙RPM鍖呯$悊緋葷粺鐨勭煡璇嗐
RPM鏄涓鴻В鍐蟲簮鐮佸寘涓嶆槗瀹夎(闇瑕佺紪璇)鍜岃蔣浠跺寘鐩鎬簰涔嬮棿渚濊禆(鏄疪PM鍖呯$悊鍣ㄥ彲浠ヤ竴瀹氱▼搴﹁В鍐充緷璧栭棶棰)闂棰橈紝瀹冮氳繃鍦ㄦ帰嫻嬫簮鐮佸寘鍦╞uild鍜宨nstall闃舵電殑鍔ㄤ綔鑾峰緱鏈緇堢敓鎴愮殑闇瑕佸畨瑁呯殑緋葷粺閲岀殑鏂囦歡錛屽苟璁板綍涓嬩竴浜涘繀瑕佺殑鎿嶄綔(姣斿傚畨瑁呭畬鎴愬悗鎵ц屾煇欏規搷浣)錛岀劧鍚庢妸姝ょ粍鎴愪負涓涓鏁翠綋錛屽綋鍦ㄧ敤鎴峰畨瑁呮ゅ寘鏃舵妸鍓嶉潰鑾峰緱鐨勬墍鏈夐棶棰樺拰璁板綍鐨勬墍鏈夋搷浣滃師鍘熸湰鏈鐨勪綔鐢ㄧ殑瀹為檯緋葷粺涓娿
涓轟竴涓鏅閫氱殑婧愮爜鎵揜PM鍖咃紝闇瑕佷笅闈涓浜涙搷浣滐紝棣栧厛闇瑕佸歸」鐩鐨凪akefile浣滃繀瑕佺殑鏀歸犱互鏀鎸丷PM鎵撳寘鎿嶄綔(瀹為檯涓婃ゆ搷浣滀笉鏄緇濆圭殑錛孲PEC鏂囨。鍜孧akefile鐨勬槸鍗忚皟緇熶竴宸ヤ綔鐨勶紝鍙瑕佷粬浠涔嬮棿閰嶅悎濂戒簡鍏朵粬閮芥棤鎵璋擄紝鎴戜滑涓鑸鍙鏄鎺ㄨ崘澶у跺敖閲忔寜琛屼笟鏍囧噯瑙勮寖鎿嶄綔鑰屽凡);鍏舵℃槸閽堝瑰綋鍓嶉」鐩鎾板啓SPEC鏂囨。錛孲PEC鏂囨。鍖呮嫭浜哛PM鎵撳寘榪囩▼鐨勬搷浣滃唴瀹瑰拰鏂扮敓鎴愮殑RPM鍖呯殑鍩烘湰淇℃伅絳夛紝瀹冪殑浣滅敤瀵硅薄鏄鎵撳寘紼嬪簭rpmbuild銆
鍥 RPM鍖呭埗浣滆繃紼
1 鍑嗗囨墦鍖呯幆澧
fedora緋葷粺涓嬩嬌鐢ㄥ備笅鍛戒護瀹夎卹pmbuild
#yum install rpmbuild
rpmbuild鐨勫伐浣滅洰褰曞備笅錛
~/rpmbuild
~/rpmbuild/SOURCES
~/rpmbuild/SPECS
~/rpmbuild/BUILD
~/rpmbuild/RPMS
~/rpmbuild/RPMS/i386
~/rpmbuild/SRPMS
濡傛灉浣犵殑鐢ㄦ埛鐩褰曚富鐩褰曚笅娌℃湁綾諱技鐩褰曠粨鏋勶紝浣犲彲浠ラ氳繃涓涓宸ュ叿杞浠舵潵鑷鍔ㄩ厤緗鍜岀敓鎴愶紝濡備笅銆
#yum installrpmdevtools
涓嬩簡榪愯岃嚜鍔ㄩ厤緗鍛戒護鑷鍔ㄧ敓鎴愬備笂鐩褰曪紝騫墮厤緗涓浜涘繀瑕佹搷浣溿
#rpmdev-setuptree
rpmdev-setuptree鍛戒護榛樿ゅ皢鍐嶅綋鍓嶇敤鎴蜂富鐩褰曚笅鍒涘緩涓涓猂PM鏋勫緩鏍圭洰褰曠粨鏋勶紝
濡傛灉闇瑕佹敼鍙樻¢粯璁や綅緗錛屽彲浠ヤ慨鏀歸厤緗鏂囦歡:~/.rpmmacros涓鍙橀噺_topdir瀵瑰簲鐨勫煎嵆鍙銆
涓鑸瑀pmbuild浼氬湪褰撳墠鐢ㄦ埛鐨勪富鐩褰曚笅鑷鍔ㄥ緩絝嬪備笂鐩褰曠粨鏋勶紝濡傛灉鍦ㄤ綘瀵瑰簲鐢ㄦ埛鐨勬瀯寤虹洰褰曚腑娌℃湁鑷鍔ㄥ緩絝嬪備笂鐩褰曪紝浣犲彲浠ラ氳繃鎵嬪姩鏂瑰紡寤虹珛銆備笂闈㈢洰褰曠殑浣跨敤鏄榪欐牱鍒嗛厤鐨勶紝SOURCES鏀劇疆鎵撳寘璧勬簮錛屽寘鎷婧愮爜鎵撳寘鏂囦歡鍜岃ˉ涓佹枃浠剁瓑;SPECS鐩褰曟斁緗甋PEC鏂囨。;BUILD鎵撳寘榪囩▼涓鐨勫伐浣滅洰褰;RPMS鐩褰曞瓨鏀劇敓鎴愮殑浜岃繘鍒跺寘錛孯PM鍖呮牴鎹紜浠跺鉤鍙頒笉鍚屽垎綾伙紝i386琛ㄧず鐢熸垚i386緇撴瀯鐨勫寘灝嗗瓨鏀懼湪璇ョ洰褰曚笅;SRPMS鐩褰曞瓨鏀劇敓鎴愮殑婧愮爜鍖呫
2 鎾板啓SPEC鏂囨。
SPEC鎾板啓鏄鎵撳寘RPM鐨勬牳蹇冿紝涔熺畻鏄鏈闅劇殑涓姝ワ紝濂藉湪鎴戜滑鍙浠ヤ粠鍙傜収涓涓綆鍗曠殑妯℃澘鏂囦歡寮濮嬶紝鍦ㄥ彲浠ュ疄鐜板熀鏈鍔熻兘鐨勫熀紜涓婂啀涓姝ヤ竴姝ョ殑鎵╁厖鏂囨。鍐呭癸紝鐩磋嚦瀹屽叏杈懼埌瑕佹眰銆備笅闈㈡槸涓涓綆鍗曠殑SPEC鏂囨。錛屽叾涓鍖呮嫭浜嗕竴浜涜存槑淇℃伅(娉錛#鍚庨潰鐨勫唴瀹逛負璇存槑淇℃伅)錛岃SPEC鏂囨。鏄瀵逛竴涓嫻嬭瘯鐨勮蔣浠墮」鐩甴ellorpm鍐欑殑錛宧ellorpm杞浠跺寘緙栬瘧鍚庝粎鏈変竴涓鎵ц屾枃浠躲佷竴涓鎵嬪唽鏂囦歡鍜屼竴涓欏圭洰璇存枃浠躲
hellorpm.spec鏂囨。鐨勫唴瀹瑰備笅錛
-----------------------------------------------------------------------------
#杞浠跺寘綆瑕佷粙緇
Summary: hellorpm is atest program銆
#杞浠跺寘鐨勫悕瀛
Name: hellorpm
#杞浠跺寘鐨勪富鐗堟湰鍙
Version:2.2.6
#杞浠跺寘鐨勬$増鏈鍙
Release: 1
#婧愪唬鐮佸寘錛岄粯璁ゅ皢鍦ㄤ笂闈㈡彁鍒扮殑SOURCES鐩褰曚腑瀵繪壘
Source0:%{name}-%{version}.tar.gz
#鎺堟潈鍗忚
License: GPL
#瀹氫箟涓存椂鏋勫緩鐩褰曪紝榪欎釜鍦板潃灝嗕綔涓轟復鏃跺畨瑁呯洰褰曞湪鍚庨潰寮曠敤
BuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-root
#杞浠跺垎綾
Group:Development/Tools
#杞浠跺寘鐨勫唴瀹逛粙緇
%description
The hellorpm programis a test.
#琛ㄧず棰勬搷浣滃瓧孌碉紝鍚庨潰鐨勫懡浠ゅ皢鍦ㄦ簮鐮佷唬鐮丅UILD鍓嶆墽琛
%prep
#鏋勫緩BUILD鐜澧冿紝灝嗚В鍘嬫簮鐮佸帇緙╁寘鍒癇UILD鐩褰
%setup-q
#BUILD瀛楁碉紝灝嗛氳繃鐩存帴璋冪敤婧愮爜鐩褰曚腑鑷鍔ㄦ瀯寤哄伐鍏峰畬鎴愭簮鐮佺紪璇戞搷浣
%build
#璋冪敤婧愮爜鐩褰曚腑鐨刢onfigure鍛戒護
./configure
#鍦ㄦ簮鐮佺洰褰曚腑鎵ц岃嚜鍔ㄦ瀯寤哄懡浠make
make
#瀹夎呭瓧孌
%install
#璋冪敤婧愮爜涓瀹夎呮墽琛岃剼鏈
makeDESTDIR=$RPM_BUILD_ROOT install
#鏂囦歡璇存槑瀛楁碉紝澹版槑澶氫綑鎴栬呯己灝戦兘灝嗗彲鑳藉嚭閿
%files
#璁劇疆鏂囦歡鏉冮檺灞炴
%defattr(-,root,root)
#澹版槑/usr/local/bin/hellorpm灝嗗嚭鐜板湪杞浠跺寘涓
/usr/local/bin/hellorpm
#澹版槑騫惰劇疆鏂囦歡灞炴
%doc%attr(0444,root,root) /usr/local/man/man1/hellorpm.1
#鍚屼笂錛屽0鏄庢枃妗f枃浠
%docREADME
-------------------------------------------------------------------------------
榪欎釜鏂囨。闇瑕佽存槑鐨勪竴鐐癸細
BuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-root
涓婇潰BuildRoot鍙橀噺琛ㄧず鐨勬槸婧愮爜鐨勪復鏃舵寜鐓х洰褰曪紝rpmbuild灝辨槸閫氳繃嬈$洰褰曡幏寰楀皢瑕佹寜鐓у埌緋葷粺涓鐨勬墍鏈夋枃浠訛紝鑰屽湪SPEC鏂囨。鍚庨潰make install 鍛戒護涓鐨勫弬鏁癉ESTDIR=$RPM_BUILD_ROOT鍗蟲槸瀵硅ュ弬鏁扮殑寮曠敤錛岃繖涓鍙傛暟灝嗕紶緇橫akefile鏂囦歡涓鍛婅瘔鑷鍔ㄦ瀯寤哄伐鍏峰簲璇ュ畨瑁呮枃浠墮偅閲(瀹為檯涓婃垜鍐嶅墠鏂囨彁鍒拌繃鐨凪akefile闇瑕佷綔涓浜涙敼閫犱互閫傚簲RPM鐨勬瀯寤哄氨鍖呮嫭姝ゆ搷浣滐紝浣犵殑Makefile鏂囦歡涓鑷沖皯瑕佺煡閬撳湪RPM鏋勫緩榪囩▼涓寮曠敤姝ゅ弬鏁扮殑鍊煎幓鎺у埗瀹夎呮搷浣滅殑鐩鏍)銆
濡備笂涓涓綆鍗曠殑SPEC鏂囨。鎾板啓瀹屾垚錛屼笅闈㈡妸涓涓鍚嶄負hellorpm-2.2.6.tar.gz鐨勬簮鐮佸帇緙╂枃浠舵斁鍒
rpmbuild鏍圭洰褰曚笅鐨凷OURCES鐩褰曚笅(娉錛岀『淇濇ゅ綊妗f枃浠惰В鍘嬪悗鐨勭洰褰曚負hellorpm-2.2.6錛屽惁鍒欎細鏈夐棶棰)銆
鍒版や竴涓瀹屾暣鐨剅pm鎵撳寘鐜澧冨凡緇忔瀯寤哄畬鎴愶紝涓嬮潰鎴戜滑灝卞彲浠ュ紑濮嬫瀯寤轟簩榪涘埗鍜屾簮浠g爜RPM鍖呫
3 鏋勫緩RPM鍖
鏋勫緩RPM鍖呮槸鏈夊懡浠rpmbuild鍦⊿PEC鐨勬寚瀵間笅瀹屾垚銆
寮濮嬫瀯寤烘搷浣滐紝棣栧厛榪涘叆鍒板綋鍓嶇敤鎴風殑rpmbuild鏍圭洰褰(鍗充笂闈㈡彁鍒扮殑鐩褰曠幆澧)銆
#cd ~/rpmbuild/
鎵ц屽備綍鍛戒護錛-ba琛ㄧずbuild all錛屽嵆鐢熸垚鍖呮嫭浜岃繘鍒跺寘鍜屾簮浠g爜鍖呯殑鎵鏈塕PM鍖咃紝涓嬫潵濡傛灉姝e父鐨勮瘽錛宺pmbuild灝嗘e父閫鍑猴紝鍚屾椂鍦≧PMS鐩褰曞拰SRPMS鐩褰曚腑灝嗙敓鎴愬瑰簲鐨凴PM鍖呫
#rpmbuild -baSPECS/hellorpm.spec
榪欓噷浠呬粎浠嬬粛浜嗕竴涓鏈綆鍗曡蔣浠剁殑鏈綆鍗曠殑RPM鐨勬墦鍖呮搷浣滆繃紼嬶紝璇稿傚甫鏈夊叡浜鏂囦歡鐨勯渶瑕佽繘琛屽嶆潅閰嶇疆鐨勫叿鏈夊嶆潅渚濊禆鍏崇郴鐨勭瓑絳夌殑欏圭洰鐨勬墦鍖呬互鍙婂悗鏈熺殑緇存姢錛屽寘鎷琛ヤ竵鐨勫埗浣滄垜灝嗗湪涓嬫潵鐨勬椂闂村畬鎴愯ˉ鍏呮洿鏂幫紝浠婂ぉ鏃墮棿涓嶆棭浜嗭紝璇ヤ紤鎮浜!

Ⅳ 如何編譯OpenWrt

搭建編譯環境。編譯建議在Linux下進行。我的系統是Linux mint 17,執行以下命令,構建編譯環境:

sudo apt-get update
sudo apt-get install git-core build-essential

獲取openwrt源碼。在當前用戶主目錄下執行

git clone git://git.openwrt.org/openwrt.git

等待代碼下載。結束後,目錄下會出現openwrt文件夾。
配置軟體源。進入openwrt目錄,執行

./scripts/feeds update -a

./scripts/feeds install -a

檢查編譯環境是否完整:

make defconfig

make prereq

根據提示信息安裝需要的軟體包。如果提示類似

「tmp/.config-package.in:22022:warning: multi-line strings not supported」

的信息,打開 openwrt/tmp/.config-package.in,定位到對應行,添上丟掉的一個引號就可以了。
編譯選項:

執行 make menuconfig,根據路由器情況,選擇 Target System 和 Subtarget。如意雲一代和極壹S的 Target System 均為 Ralink RT288x/RT3xxx 。對於Subtarget ,前者為 MT7620n based boards ,後者為 MT7620a based boards。

其他選項根據個人喜好選擇。一般來說要選中LuCI界面,選中中文語言包等等。
開始編譯:

執行 make -j2 V=s 進行編譯。-j後面的數字是電腦物理CPU數量加一。V=s可以顯示出編譯的詳細信息。首次編譯大概需要幾個小時的時間。
錯誤排查:

編譯失敗,一般有兩種情況:

1.代碼下載鏈接失效。首次編譯時,編譯程序會實時從網上下載一些軟體包的代碼。如果下載鏈接失效,編譯就會失敗。這時需要根據軟體包的名稱,從網上自行下載,然後放在 openwrt/dl/ 目錄下,執行 make -j2 V=s 繼續編譯即可。

2.軟體包自身有問題。這時重新執行 make menuconfig ,取消對應軟體包選中即可。這種情況比較少見,目前已知的有 tor 等。

編譯成功,但沒有生成固件。這種情況一般是因為選中的軟體包過多,導致固件大小超過16MB。重新執行 make menuconfig,去掉一些軟體包,重新執行編譯即可。
得到固件。在排除了所有錯誤後,現在終於得到了固件。對於如意雲RY-1,固件在 openwrt/bin/ramips 目錄下,形如

openwrt-ramips-mt7620n-rt-n14u-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wrtnode-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-mlw221-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wr8305rt-squashfs-sysupgrade.bin

等等。

Ⅵ 如何在windows下編譯GMP軟體包

1、下載GMP源代碼,展開到d:/gmp
http://gmplib.org/#DOWNLOAD
2、下載MinGW windows下的GNU C編譯器
http://sourceforge.net/project/showfiles.php?group_id=2435
中的AutoMated MinGW Installer下載完後執行,選擇下載並安裝
安裝選項選擇第一,二和最後共三個組件,安裝在d:/minGW
3、 http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe?modtime=1079444447&big_mirror=1
下載MSYS MinGW的輔助環境
安裝到d:/msys,安裝時有兩個提示,第一個提示輸入Y, 第二個提示輸入MinGW安裝路徑d:/MinGW

完成後桌面出現msys快捷方式

4、進入d:/msys/1.0/etc編輯fstab文件
加入行
d:/gmp /gmp

5、點擊msys進入環境
cd /gmp進入gmp虛擬路徑
依次執行(每個都會執行很長時間)
./configure
make
make install
則編譯出靜態包
如果執行
./configure --disable-static --enable-shared
make
make install
則編譯出dll

Ⅶ 如何編譯安裝源碼包軟體

怎樣安裝以源碼包打包的軟體;

1、源碼包的打包格式;
源代碼一般以file.tar.gz file.tar.bz2或file.src.rpm 打包;file.tar.gz和file.tar.bz2格式的解包命令如下;
[root@localhost beinan]# tar jxvf file.tar.bz2
[root@localhost beinan]# tar zxvf file.tar.gz

至於file.src.rpm 的用法,請參見:《file.src.rpm 使用方法的簡介》

2、如何編譯安裝源碼包;(大多數)

1)解開軟體包查看幫助文檔;

我們解開一個包後,進入解壓包,一般都能發現README(或reame)和INSTALL( 或install);或doc(或DOC)目錄;看名字就知道個差不多;
比如我們下載一個比較新的fcitx 的軟體包,比如是 fcitx-3.2-050827.tar.bz2
我們在解開這個軟體包會會發現如下的文件;
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ls
aclocal.m4 config.guess configure debian INSTALL Makefile.in src xpm
AUTHORS config.h.in configure.in depcomp install-sh missing THANKS
autogen.sh config.rpath COPYING doc lib mkinstalldirs TODO
ChangeLog config.sub data fcitx.spec.in Makefile.am README tools
所以我們就可以看fcitx的INSTALL 和doc目錄的安裝文檔了;裡面都告訴我們如何安裝;
有時安裝文檔也會在開發者的主頁上有詳細的說明,及常見問題的處理等;比如 LumaQQ

2)編譯安裝軟體的條件;

首 先我們在Linux系統中至少得把開發工具安裝上,比如 gcc ;perl;python;glibc;gtk;make ;automake 等開發工具或基礎包;還要安裝一些相應的開發包,一般是文件名包括dev的,比如kernel-devel;還有一些開發庫,比如以lib開頭的;如果您 在編譯軟體時,有時提示缺少什麼東西之類的,大多少的是這些開發工具和開發庫等;從光碟中找出安裝就是了;有時光碟沒有提供,請用google搜索相應的 軟體包,有時可能也會用到源碼包編譯安裝所依賴的包;
有時本來系統中已經安裝了所依賴的包,但系統提示找不到應該怎麼辦?這時需要我們設置一下PKG_CONFIG_PATH的環境變數就行了;
#export PKG_CONFIG_PATH=/usr/lib/pkgconfig

#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
然後我們再來運行編譯的./configure ;make ;make install ,嘗試著來吧;
以java開發的工具開發的程序,要用到 jre或者jdk ;jdk已經包括jre了,所以如果我們只是要求有一個java程序運行的環境,只需要安裝jre就行了;安裝好jre,配置一下java的環境變數就可以用了。如果是圖形界面的程序,點點滑鼠就OK了;
用perl 開發的程序,是需要perl環境的,所以必須得把perl的包安裝上,python 也同理;

3)編譯安裝軟體的方法;
大多以tar.gz 和tar.bz2打包軟體,大多是通過 ./configure ;make ;make install 來安裝的;有的軟體是直接make;make install ;
我們可以通過./configure --help 來查看配置軟體的功能;大多軟體是提供./configure 配置軟體的功能的;少數的也沒有,如果沒有的就不用./configure ;直接make;make install 就行了;
./configure 比較重要的一個參數是 --prefix ,用--prefix 參數,我們可以指定軟體安裝目錄;當我們不需要這個軟體時,直接刪除軟體的目錄就行了;
比如我們可以指定fcitx 安裝到 /opt/fcitx 目錄中;
[root@localhost fcitx]#./configure --prefix=/opt/fcitx
如果我們不需要fcitx 時,可以直接刪除 /opt/fcitx 目錄;
所以我們舉這個例子中,fcitx如果定製安裝到 /opt/fcitx目錄中,完整的安裝方法應該是:
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ./configure --prefix=/opt/fcitx
[root@localhost fcitx]# make
[root@localhost fcitx]# make install
調用fcitx ,應該是
[beinan@localhost ~]#/opt/fcitx/bin/fcitx
如果您想要讓fcitx 只要執行fcitx ,就能調用,請配置環境變數,或者在/usr/bin 中做一個fcitx 的鏈接;
[root@localhost beinan]# ln -s /opt/fcitx/bin/fcitx /usr/bin/fcitx
一般的情況下都有說,但大多軟體沒有提供源碼包的卸載方法;我們可以找到軟體的安裝點刪除。主要看你把它安裝在哪了。
設置環境變數PATH,請參見:《在Fedora Core 中,有些常用命令怎麼沒有?解決辦法設置PATH》
所以您的PATH可以設置成這樣的;
export PATH=".:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/sbin:/opt/fcitx/bin"
當然這只是舉個例子,fcitx 可以進入桌面自動運行的,請參看 http://www.fcitx.org 官方站上的安裝說明;舉個例子只是讓大家好理解一點;
再舉一個例子,比如我想安裝mlterm ;並指定安裝目錄為/opt/mlterm中; http://mlterm.sourceforge.net
#./configure --prefix=/opt/mlterm
#make
#make install

把源碼包安裝的軟體,都指定安裝在 /opt目錄中,這樣不就知道了軟體安裝在哪裡了;也方便卸載;

熱點內容
輔助官網源碼 發布:2024-05-20 07:31:48 瀏覽:865
androidbutton的屬性 發布:2024-05-20 07:18:58 瀏覽:636
查找重復欄位的sql 發布:2024-05-20 07:18:17 瀏覽:302
我的世界創造房子伺服器 發布:2024-05-20 06:48:36 瀏覽:818
小米筆記本存儲不夠 發布:2024-05-20 06:32:53 瀏覽:784
dirt5需要什麼配置 發布:2024-05-20 06:02:58 瀏覽:543
怎麼把電腦鎖上密碼 發布:2024-05-20 05:19:09 瀏覽:985
安卓為什麼連上wifi後沒有網路 發布:2024-05-20 05:17:50 瀏覽:419
安卓usb在設置哪裡 發布:2024-05-20 05:03:03 瀏覽:187
綏化編程 發布:2024-05-20 04:59:44 瀏覽:991