當前位置:首頁 » 編程軟體 » linux源碼編譯安裝

linux源碼編譯安裝

發布時間: 2022-12-06 02:51:22

A. linux源碼編譯需要哪些軟體

一、程序的組成部分
Linux下程序大都是由以下幾部分組成:
二進制文件:也就是可以運行的程序文件
庫文件:就是通常我們見到的lib目錄下的文件
配置文件:這個不必多說,都知道
幫助文檔:通常是我們在Linux下用man命令查看的命令的文檔
二、Linux下程序的存放目錄
Linux程序的存放目錄大致有三個地方:
/etc,
/bin,
/sbin,
/lib
:系統啟動就需要用到的程序,這些目錄不能掛載額外的分區,必須在根文件系統的分區上
/usr/bin,/usr/sbin,/usr/lib:操作系統核心功能,可以單獨分區
/usr/local/bin,/usr/local/sbin,/usr/local/lib,/usr/local/etc,/usr/local/man:這個用於安裝第三方程序,分別對應了二進制文件、庫文件、配置文件、幫助文檔的目錄
通常來說我們安裝程序就安裝在
/usr/local目錄下
三、編譯安裝源程序
1、使用如下命令查看當前是否安裝了gcc編譯器,沒有可以先用yum安裝gcc
gcc
--version
#查看是否安裝gcc
2、解壓源碼包,例如:
tar
-xvf
nginx-1.7.7.tar.gz
#解壓源碼包
3、進入解壓好的源碼包:
cd
nginx-1.7.7
#進入源碼包
4、執行configure文件,此文件有兩個功能:1、讓用戶選定編譯特性;2、檢查編譯環境。configure執行後將生成MakeFile文件。例如:
./configure
--prefix=/usr/local/nginx
--conf-path=/etc/nginx/nginx.conf
其中我們通過--prefix制定了安裝路徑,通過--conf-path制定了配置文件的具體位置。注意:不是所有的程序的configure參數都是一樣的
可以使用
./configure
--help查看詳細參數說明。如果該程序所依賴的庫在當前系統中沒有安裝,則會導致configure最後報錯,遇到這種情況就需要你先安裝依賴庫。
5、執行make命令,編譯程序
make
6、編譯成功後就可以安裝了,執行如下命令
make
install
到此程序就算安裝完成了,但是不要忘了還有後續的配置哦
四、配置程序
1、修改PATH環境變數,以能夠識別此程序的二進制文件路徑;
修改/etc/profile文件,在文件中
添加
export
PATH=$PATH:/path/to/somewhere#記得是可執行文件所在的目錄,路徑中不要包含可執行文件。
然後執行

source
/etc/profile
#是我們的修改生效

2、默認情況下,系統搜索庫文件的路徑/lib,
/usr/lib;
要增添額外搜尋路徑(注意:有的程序不提供庫文件,那就不需要此設置了)
在/etc/ld.so.conf.d/中創建以.conf為後綴名的文件,而後把要增添的路徑直接寫至此文件中;然後執行如下命令使其生效
ldconfig
3、如果程序提供了庫文件,也會相應的提供頭文件,一般在安裝目錄的include目錄下,系統默認掃描頭文件的路徑是:/usr/include。我們可以在/usr/include下用鏈接連接到我們安裝程序的頭文件。
ln
-s
/usr/local/nginx/include
/usr/include/yourname
4、可能程序還提供了幫助文檔,一般是安裝目錄下的man目錄,為了我們可以使用man命令查看我們程序的幫助文檔,我們需要:在/etc/man.config中添加一條MANPATH,指向我們的文檔目錄

B. linux內核源碼安裝

起因:想查看鏈表list.h源碼,但系統中沒有找到
經過一番搜索,總結下安裝步驟:

此時需要安裝一個mock,並新建一個mockbuild用戶

4、命令行執行

5、回到根目錄下 /root/rpmbuild ,可以看到SPECS文件夾cd到這個文件夾
執行 rpmbuild -bp --target = $ (uname -m) kernel.spec
如果提示rpmbuild not find,需要先安裝rpmbuild, yum install rpmbuild
6、運行後會出現錯誤,提示

執行

7、依賴包安裝完成後,再次執行

至此,安裝完成。

C. linux上的編譯安裝的基本概念是什麼,具體的流程又是怎麼個樣子

計算機運行的程序都是二進制的代碼,那麼我們所用的編程語言都是自然語言中的字元,那麼就需要有一種機制來將這些轉化成二進制代碼,那麼根據轉化機制不一樣,編程語言(軟體 產生的源頭)分兩大類 解釋型 編譯型,解釋型就不說了,編譯型就是在寫好程序的源碼以後對程序進行編譯,編譯成二進制的可執行代碼。
在linux中很多軟體的源碼都會伴隨著軟體一起發布,軟體就是經過編譯的一些二進制的文件,這些二進制文件由源碼編譯而來。所以當我們拿到了軟體的源碼的時候,可以根據源碼編譯出軟體,然後對軟體進行安裝,這就是你所說的編譯安裝了,對於非電腦專業的人不需要了解那麼多,涉及的東西比較多,要知道在編譯的時候需要設置編譯參數的,,
所以會拿deb rpm包來安裝就行了。。使用打包好的二進制包安裝的另外的好處就是可以由包管理系統進行管理可以方便的對軟體包進行安裝升級和卸載,如果是源碼編譯那麼就需要自己手動的管理了。
具體的流程沒那麼復雜,linux軟體發布的源碼都是有標准格式 的,通常是tar.gz tar.bz2這樣的壓縮包,
tar xvf xxx.tar.gz 解壓源碼包
cd xxx 進入源碼目錄
more INSTALL 或者more README 閱讀源碼包里的安裝說明,看不懂英語的可以跳過這步
./configure 參數 配置編譯參數;最常見的是prefix=安裝路徑 這樣可以把軟體安裝到一個指定目錄而不是安裝到系統的文件結構中(linux的文件結構可以參考FHS標准規范里的定義)
make 當上一步正確的執行後會生成一個Makefile文件,使用make命令可以對軟體源碼進行編譯
make install 安裝(可能會需要root許可權)
//部分軟體還會提供make test 這樣的測試,在安裝前可以運行make test 來測試軟體是否編譯正確。

D. linux中源代碼包安裝的基本步驟是什麼

詳解linux源碼包安裝過程

1. 解壓縮包

可以通過下載或其他方式獲得了一個軟體包,通常它是一個壓縮文件,大部分可能是存檔的和壓縮的,這些文件一般以 .tar .gz為擴展名。

首先拷貝它到一個目錄,然後 untar 和 gunzip 解壓它。 通常這個命令是

tar xzvf filename [filename 是軟體文件名稱]

解壓後的文件一般會在當前目錄下的創建子目錄,並以這個包名來命名。 你也可以用用這個命令預先查看結果 tar tzvf filename,顯示包里有那些解壓文件。

源文件如果是新的 bzip2 (.bz2) 格式,可用

bzip2 -cd filename | tar xvf -,或更簡單的 tar xyvf filename ,這很不錯的tar命令被不斷的完善。

說明:

A:有時候一些文件必須安裝在用戶的 home 目錄下,或更多的是在一個固定的目錄,比如 /, /usr/src, 或 /opt 。所以必須仔細閱讀安裝包的配置信息。當一個軟體包里如果有config 和 Makefiles 文件則最好去編輯它,這里包括了安裝指令和說明。提示:你改變 makefile 會導致不同的結果。大部分軟體包允許用 make install 自動處理安置二進制文件在適當的系統位置。

B:你可能碰到過一些共享文件、shell 存檔文件、尤其是 Internet 上的源碼新聞組。它們保留的原因是具有人性化的可讀性,並且允許新聞組緩沖並通過它們篩選和剔除出不合格的。它們可能用 unshar filename.shar 命令來解壓。

C: 一些源碼存檔文件是用非標準的 DOS,Mac 或其他壓縮的比如:

zip, arc, lha, arj, zoo, rar, and shk.

D: 有時候,你可能需要使用一個 patch 或顯示改變了的 diff 文件來升級或修復存檔的源碼文件。這 doc 文件或者 README 文件將告訴你怎麼去使用。一個很好的命令用標准語法來調用的命令是 patch < patchfile.

2: 關於 rpm 安裝包

一些 Linux 用戶懼怕通過使用源碼來手動安裝軟體包,不過現在有方便的 rpm 和 deb 或 新格式的 slp 包。例如:rpm 安裝運行平穩又快,作為一個軟體安裝在某幾個有名的操作系統。

作為方便的RPM包也存在很多不好的缺點,例如:

A: 要了解軟體中更多更詳細的內容你必須去在二進制中去了解,而不是rpm包。

B: 還有安裝一個 rpm 包如果需要依賴關系那麼安裝就可能會導致失敗。

C: 當 rpm 請求你系統中不同版本的庫,那麼安裝將不能繼續,除非你為錯誤的庫位置創建連接符號到正確的位置。

說明:必須使用root 安裝 rpm 和 deb 。因為它需要必須的寫入許可權。

最簡單的,用命令 rpm -i packagename.rpm 和 dpkg --install packagename.deb 會自動解包和安裝。

3:關於安裝 Linux 包出現的一些問題及解決方案

假設 make 失敗有個鏈接錯誤: -lX11: No such file or directory,正好在 xmkmf 之後已被調用,這可能意味著 Imake 不能被完全建立。檢查第一部分 Makefile 文件的的行是這樣:

· LIB= -L/usr/X11/lib
· INCLUDE= -I/usr/X11/include/X11
· LIBS= -lX11 -lc -lm

這個 -L 和 -I 開關告訴編譯器和鏈接分別在哪裡找到 library 和 include 文件。在這個例子里, X11 庫應該在 /usr/X11/lib 目錄,且 X11 包含文件應該在 /usr/X11/include/X11 目錄里。假如對於你的機器上的這個錯誤,請處理修改 Makefile 並重新再 make。

沒有聲明涉及的數學庫函數,像下列各項:
/tmp/cca011551.o(.text 0x11): undefined reference to `cos'

要修復它,需要明確鏈接到匹配的庫,在 Makefile (看先前的例子) 里增加一個 -lm 到 LIB 或 LIBS 標記 。

用其他方法嘗試

仍然失敗 如果失敗,參考下列腳本
make -DUseInstalled -I/usr/X386/lib/X11/config
這個直接方式的類別相當於。

在少數例子里,用 root 運行 ldconfig 可能會解決:
# ldconfig 更新共享庫鏈接符號。

一些 Makefiles 使用你系統里未被承認的庫別名。一個例子,構建可能需要 libX11.so.6 ,但是在 /usr/X11R6/lib 不存在文件或鏈接。然而,在那裡是 libX11.so.6.1。解決方法是用 root 運行ln -s /usr/X11R6/lib/libX11.so.6.1 /usr/X11R6/lib/libX11.so.6 ,接著需要運行 ldconfig 。
有一些包需要你安裝一個或更多庫的升級版本。需要拷貝一個或更多的庫到適當的目錄里,刪除舊的庫,重新設置動態鏈接庫。
4:一些其他的問題處理

安裝一個shell 腳本如果出現:No such file or directory 的錯誤消息。這是可以檢查文件許可權確定文件事可執行的,並檢查文件頭確定是否 shell 或程序是腳本在指定的位置被調用。一個例子,這個腳本可能是這樣開始的:

#!/usr/local/bin/EDEN

如EDEN的實際安裝位置是在你的 /usr/bin 目錄,用一個 /usr/local/bin 替代

這個腳本不能運行有兩個方法來糾正!!

A: 文件頭改成 #!/usr/bin/EDEN

B: 或增加一個鏈接符, ln -s /usr/bin/EDEN

5:一個典型的例子 Xloadimage

首先說明下面的例子來源於國外網站的一個技術實例,這里我做了翻譯和整理。

這個例子展現一個簡單的問題。xloadimage 程序對我的圖形工具的調整設置是有用的附加。從源碼目錄拷貝文件,用 tar xzvf 解壓文件,可是在運行 make 的時候出現令人討厭的錯誤並停止了。

gcc -c -O -fstrength-rece -finline-functions -fforce-mem

-fforce-addr -DSYSV -I/usr/X11R6/include

-DSYSPATHFILE=\"/usr/lib/X11/Xloadimage\" mcidas.c

In file included from /usr/include/stdlib.h:32,

from image.h:23,

from xloadimage.h:15,

from mcidas.c:7:

/usr/lib/gcc-lib/i486-linux/2.6.3/include/stddef.h:215:

conflicting types for `wchar_t'

/usr/X11R6/include/X11/Xlib.h:74: previous declaration of

`wchar_t'

make[1]: *** [mcidas.o] Error 1

make[1]: Leaving directory

`/home/thegrendel/tst/xloadimage.4.1'

make: *** [default] Error 2

這個錯誤消息包含了實質的線索:

查看 image.h 文件的 23 行:
#include < stdlib.h>
在源碼的某處對於 xloadimage, wchar_t 已經在指定標准 include 文件重新定義。 告訴我們首先在 image.h 的 23 行嘗試注釋它,或許 stdlib.h include 是不存在的,畢竟不是所有都是必需的。

在這點,構建中的收益來源於所有任何一個致命錯誤。xloadimage 現在功能正常。

6: 安裝 Linux 包的一些總結

堅持自己動手處理所有的安裝出現的問題,不斷總結努力學習,從錯誤里去仔細研究,努力動手排錯,從每個不足甚至失敗的地方得到擴充和提升,可以增強安裝構建軟體的技巧。

E. Linux中源碼編譯安裝程序包括哪些基本步驟

linux源碼多為c語言,編譯用gcc,調試為gdb,兩個功能都及其強大,其它的編譯器,調試器都只能望其項背了!!!

F. Linux系統中編譯安裝Nginx伺服器,看了還不會你來打我

使用yum安裝方式安裝PCRE:

yum安裝後檢查安裝結果:

使用yum安裝openssl-devel:

檢查yum安裝結果:

在確保Nginx編譯安裝所依賴的pcre-devel和openssl-devel已經安裝好了後,可以下載Nginx源碼進行編譯安裝。 Nginx源碼可以從Nginx官方網站(http://nginx.org)找到相應版本源碼的下載地址: http://nginx.org/download/nginx-1.16.0.tar.gz

下載Nginx源碼:

添加nginx用戶,服務於Nginx:

解壓軟體包:

編譯Ngixn源碼並安裝:

建立nginx應用程序軟鏈接:

啟動前為了避免報錯,先檢查配置文件語法:

啟動Nginx服務:

查看Nginx服務是否啟動成功:

說明已經啟動成功,打開瀏覽器輸入http://127.0.0.1/就可以看到nginx網頁信息。

G. linux下如何編譯源碼包或者說是安裝

1、安裝編碼源碼的編譯工具,一般是需要安裝gcc
yum install gcc
2、把源碼解壓
tar zxvf uname.tar.gz
3、進入解壓的目錄執行
./configure
make
make install
完成編譯安裝

H. Linux中源碼編譯安裝程序包括哪些基本步驟

第一步:創建編譯腳本
進入到源碼目錄 執行 ./configure --prefix=/.../.....(--prefix=後面是想要安裝到的目錄)
第二部:編譯
執行 make
第三部:安裝
執行 make install
當然上面這幾部都是最基本的步驟,如果想優化編譯,要在./configure 後面加參數,或者configure之後手動修改Makefile文件 如O2(優化等級) FLAGS 等編譯參數的修改。
--------------------------------------------------------------------------------------------------------------
以上都是源碼包的編譯
如果是自己寫的C代碼 直接 用gcc編譯即可。
例如 編譯test.c
執行 gcc -o test test.c即可將test.c編譯為可執行的文件 test

自己打出來的 要採納啊!

熱點內容
pythonbittorrent 發布:2023-02-01 04:09:29 瀏覽:641
加拿大訪問簽證材料 發布:2023-02-01 04:08:33 瀏覽:557
單病種上傳 發布:2023-02-01 04:00:55 瀏覽:349
微信撤回的消息沒有重新編譯 發布:2023-02-01 03:58:25 瀏覽:671
咖搭姆編程課 發布:2023-02-01 03:55:46 瀏覽:16
凝思系統開啟ftp功能 發布:2023-02-01 03:55:41 瀏覽:97
怎樣下載不讓緩存的歌曲 發布:2023-02-01 03:53:20 瀏覽:765
前端框架運行時與編譯時的區別 發布:2023-02-01 03:52:10 瀏覽:477
c語言的編譯過程簡述 發布:2023-02-01 03:49:43 瀏覽:162
套磁訪問學者 發布:2023-02-01 03:49:05 瀏覽:540