導航:首頁 > 源碼編譯 > linux源碼編譯

linux源碼編譯

發布時間:2022-01-14 13:04:31

1. 如何編譯linux操作系統的源代碼

首先uname
-r看一下你當前的linux內核版本
1、linux的源碼是在/usr/src這個目錄下,此目錄有你電腦上各個版本的linux內核源代碼,用uname
-r命令可以查看你當前使用的是哪套內核,你把你下載的內核源碼也保存到這個目錄之下。
2、配置內核
make
menuconfig,根據你的需要來進行選擇,設置完保存之後會在當前目錄下生成.config配置文件,以後的編譯會根據這個來有選擇的編譯。
3、編譯,依次執行make、make
bzImage、make
moles、make
moles
4、安裝,make
install
5、.創建系統啟動映像,到
/boot
目錄下,執行
mkinitramfs
-o
initrd.img-2.6.36
2.6.36
6、修改啟動項,因為你在啟動的時候會出現多個內核供你選擇,此事要選擇你剛編譯的那個版本,如果你的電腦沒有等待時間,就會進入默認的,默認的那個取決於
/boot/grub/grub.cfg
文件的設置,找到if
[
"${linux_gfx_mode}"
!=
"text"
]這行,他的第一個就是你默認啟動的那個內核,如果你剛編譯的內核是在下面,就把代表這個內核的幾行代碼移到第一位如:
menuentry
'Ubuntu,
with
Linux
3.2.0-35-generic'
--class
ubuntu
--class
gnu-linux
--class
gnu
--class
os
{
recordfail
gfxmode
$linux_gfx_mode
insmod
gzio
insmod
part_msdos
insmod
ext2
set
root='(hd0,msdos1)'
search
--no-floppy
--fs-uuid
--set=root
9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic
root=UUID=9961c170-2566-41ac-8155-18f231c1bea5
ro
quiet
splash
$vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
當然你也可以修改
set
default="0"來決定用哪個,看看你的內核在第幾位,default就填幾,不過我用過這種方法,貌似不好用。
重啟過後你編譯的內核源碼就成功地運行了,如果出現問題,比如滑鼠不能用,usb不識別等問題就好好查查你的make
menuconfig這一步,改好後就萬事ok了。
最後再用uname
-r看看你的linux內核版本。是不是你剛下的那個呢!有沒有成就感?

2. 如何編譯linux源代碼

首先uname -r看一下你當前的linux內核版本

1、linux的源碼是在/usr/src這個目錄下,此目錄有你電腦上各個版本的linux內核源代碼,用uname -r命令可以查看你當前使用的是哪套內核,你把你下載的內核源碼也保存到這個目錄之下。
2、配置內核 make menuconfig,根據你的需要來進行選擇,設置完保存之後會在當前目錄下生成.config配置文件,以後的編譯會根據這個來有選擇的編譯。
3、編譯,依次執行make、make bzImage、make moles、make moles
4、安裝,make install
5、.創建系統啟動映像,到 /boot 目錄下,執行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改啟動項,因為你在啟動的時候會出現多個內核供你選擇,此事要選擇你剛編譯的那個版本,如果你的電腦沒有等待時間,就會進入默認的,默認的那個取決於 /boot/grub/grub.cfg 文件的設置,找到if [ "${linux_gfx_mode}" != "text" ]這行,他的第一個就是你默認啟動的那個內核,如果你剛編譯的內核是在下面,就把代表這個內核的幾行代碼移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {

recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
當然你也可以修改 set default="0"來決定用哪個,看看你的內核在第幾位,default就填幾,不過我用過這種方法,貌似不好用。

重啟過後你編譯的內核源碼就成功地運行了,如果出現問題,比如滑鼠不能用,usb不識別等問題就好好查查你的make menuconfig這一步,改好後就萬事ok了。

最後再用uname -r看看你的linux內核版本。是不是你剛下的那個呢!有沒有成就感?

3. 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,指向我們的文檔目錄

4. linux下如何編譯源碼包

源碼安裝三部曲
./configure
make
make install

裡面應該有readme 吧。源碼包一定有安裝介紹的

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

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

6. linux下面yum安裝和源碼編譯安裝的區別

YUM安裝可以看成是在線安裝的一種方式,你只需要yum install 軟體名,系統就自動根據yum源配置文件中的鏡像位置去下載安裝包了,並可以自動分析所需的軟體依賴關系,自動安裝所需的依賴軟體包。此方式適合初學者,簡單方便,不用考慮依賴關系。但有些軟體並不能通過yum來安裝。。
而源碼安裝方式是需要自己到網上下載源碼包,然後解壓安裝。此方式可以指定配置參數,更加靈活方便,兼容性更強。比較適合對Linux系統有較多了解的進階用戶使用。。
實際工作中,兩種方式結合起來使用,效果更佳。

7. 如何將linux源碼編譯為可以安裝的iso文件

編譯不了,其實你說的是兩個問題,一個是編譯linux源代碼,以及各種驅動及應用程序(比如桌面系統、各種軟體)的源代碼並打包成各種linux包文件;另一個是製作用於安裝的iso光碟。
前者你可以訪問一下開發者社區,應該有文檔可以解決你的問題,
後者你需要學習光碟製作的知識,目前自己做光碟的好多都是用easybcd做的,內容繁瑣,需要自己慢慢學習。

8. 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 來測試軟體是否編譯正確。

9. 如何編譯ubuntu linux系統的源代碼

有這個心去研究LFS吧,就是全部從源碼編譯出來的系統,不過....希望你的
電腦配置
夠好,不然就慢慢耗吧

閱讀全文

與linux源碼編譯相關的資料

熱點內容
福建新唐集成硬體加密 瀏覽:941
空調壓縮機被破壞 瀏覽:103
現在學php怎麼樣 瀏覽:88
linuxchttp下載 瀏覽:768
大數據虛擬機雲伺服器 瀏覽:55
java與嵌入式開發 瀏覽:20
minios如何搭建文件伺服器 瀏覽:1000
華為為啥有些壓縮包解壓不開 瀏覽:563
oracle可以編譯存儲嗎 瀏覽:475
機械男和女程序員創業 瀏覽:799
自己怎麼製作軟體app 瀏覽:214
javajson字元串轉java對象 瀏覽:230
必修一數學PDF 瀏覽:775
javascriptphpjsp 瀏覽:811
深圳一程序員退房完整版 瀏覽:294
後台管理app哪個好 瀏覽:766
加密鎖無模塊什麼意思 瀏覽:22
加密國度英文 瀏覽:20
科沃斯用了app怎麼使用按鍵 瀏覽:663
爬蟲編譯器價格 瀏覽:885