centos怎麼編譯linux
① CentOS 5.5下如何編譯安裝新內核
第一步:下載內核
傳送門:地址.筆者下載的是3.2.84版本
第二步:解壓編譯內核
由於我下的是.tar.xz文件,用tar命令不能直接解壓。
1.我的系統里不帶xz解壓軟體,先下載xz-5.0.3.tar.bz2文件並解壓安裝
tar -jvxf xz-5.0.3.tar.bz2 cd /opt/xz-5.0.3 #進入解壓後的文件夾 ./configure make make install2.解壓內核
xz -d linux-3.2.84.tar.xz tar -xvf linux-3.2.84.tar3.如果是第一次編譯內核,並沒有上次殘留的文件可以跳過該步驟(最好仔細看下指令對應的功能)
make mrproper make clean 刪除大多數的編譯生成文件, 但是會保留內核的配置文件.config, 還有足夠的編譯支持來建立擴展模塊 make mrproper 刪除所有的編譯生成文件, 還有內核配置文件, 再加上各種備份文件 make distclean mrproper刪除的文件, 加上編輯備份文件和一些補丁文件。4.搭建編譯內核所需要的環境
yum -y install gcc yum install ncurses ncurses-devel yum install openssl-devel5.進入內核解壓文件夾配置內核參數
由於我是個小白不會選,為了方便,直接用make localmodconfig命令,這個命令是以本來的.config文件為基礎去選,可以參考論文:嵌入式linux系統的裁剪優化和測試技術.然後我就一直回車直到結束。然後再輸入make menuconfig命令進入圖形選擇菜單,將kenel hacking中的Sample..選項去掉(具體那一項我忘了,尷尬),退出保存。然後編輯.config文件中的“CONFIG_SYSFS_DEPRECATED”,默認該選項為not set,被注釋掉的,將其改為y,即修改為“CONFIG_SYSFS_DEPRECATED=y”,之後可能還要修改,後面再說。
6.編譯新內核
make bzImage && make moles && make moles_install7.安裝內核
8.編譯安裝可能出現的情況
應該是沒什麼問題, 不過也不排除會出現下面的情況:make:警告:檢測到時鍾錯誤。您的創建可能是不完整的。 解決辦法:find . -type f -exec touch {} ; 重新編譯下就好了。
9.處理下img中的東西(我說不清楚= =)
1)解壓initrd文件
# cp /boot/initrd-3.2.84.img /tmp # cd /tmp/ # ls initrd-2.6.30.4.img # mkdir newinitrd # cd newinitrd/ # zcat ../initrd-2.6.30.4.img | cpio -i釋放之後看到如下內容
# ls bin dev etc init lib proc sbin sys sysroot2)編輯init,刪掉其中重復的四行中的兩行 echo “Loading dm-region-hash.ko mole” insmod /lib/dm-region-hash.ko echo “Loading dm-region-hash.ko mole” insmod /lib/dm-region-hash.ko 3)重新打包initrd
# find . | cpio -c -o > ../initrd 11538 blocks # cd .. # gzip -9 < initrd > initrd.img # ls initrd-2.6.30.4.img initrd initrd.img這裡面的initrd.img就是重新打包後的文件。 4)把initrd.img復制到/boot下 命令:#cp initrd.img /boot 5)修改grub.config,在/etc文件夾下 把initrd-3.2.84.img改為initrd.img就可以了 6)reboot重啟 記得選擇自己的內核!別錯過啦!
以上內容就是小編為大家帶來的關於CentOS 5.5下編譯安裝新內核的方法了,希望可以幫助到大家!
② linux下如何編譯源碼包或者說是安裝
1、安裝編碼源碼的編譯工具,一般是需要安裝gcc
yum install gcc
2、把源碼解壓
tar zxvf uname.tar.gz
3、進入解壓的目錄執行
./configure
make
make install
完成編譯安裝
③ 如何在centos7中編譯linux內核
下載linux內核的源代碼,然後設置內核參數,然後編譯。
④ CentOS怎麼編譯linux程序
打開你的終端 linux叫bash 進去到你的工作目錄 在裡面敲命令 比如 gcc code.c -o code 就是把code.c源代碼編譯鏈接成code 系統默認生成的可執行文件是a.out 這個你需要學習gcc命令 如果是項目編譯需要用到make 還要學習寫makefile 東西很多 望採納
⑤ centos 5.7 如何編譯linux-3.0.4核心
就像網上那些教程一樣就行,不過有一點,glibc也要跟著升級一下,以符合最新的內核,而且gcc也要搭的,以前試過,不過以失敗告終,
⑥ 如何升級centos7內核並且編譯
、使用 elrepo rpm包升級
查看前系統內核版本 uname -r
1. 導入key
rpm --import
2. 安裝 elrepo yum源
rpm -Uvh
3. 安裝內核
yumelrepo源新版本內核直接yum安裝即
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y
5. 設置系統啟順序
查看系統啟項:
cat /boot/grub2/grub.cfg |grep menuentry
發現新版本內核設置新版本內核默認啟:
grub2-set-default 'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'
查看默認啟系統版本grub2-editenv list:
顯示'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'
6. reboot重啟再查看 uname -r
二、使用源碼編譯安裝升級
1 載內核源碼
載網址
wget xxx
2 解壓並進入源碼目錄
3 更新系統並安裝依賴軟體
#yum update
#yum upgrade
#yum groups install Development Tools
#yum install ncurses-devel qt-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel
4 前內核配置文件拷貝前目錄
本應該執行make menuconfig自定義內核配置配置文件.config; 直接使用原系統內核配置拷貝/boot目錄配置文件前目錄
cp /boot/config-2.6.32-431.11.2.el6.x86_64 .config
5 使用前內核配置
#sh -c 'yes "" | make oldconfig' #centos 6
#sh -c 'y "" | make oldconfig' #centos 7
6 編譯安裝
#make bzImage
#make moles
#make moles_install
#make install
7 設置系統啟順序
查看系統啟項:
cat /boot/grub2/grub.cfg |grep menuentry
發現新版本內核設置新版本內核默認啟:
grub2-set-default 'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'
查看默認啟系統版本grub2-editenv list:
顯示'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'
8 reboot重啟再查看 uname -r
-
⑦ linux的centos下怎麼編譯安裝LNMP,然後運行phpcms
1、先准備gcc環境
2、下載所需安裝包,nginx,mysql,php等及php其依賴包和php優化包
3、編譯nginx,依賴pcre
4、編譯mysql,依賴cmake
5、編譯php,依賴zlib,libpng,jpegsrc,freetype,gd,libxml2,libiconv,libxslt,autoconf,libmcrypt,mhash,mcrypt,libevent,
6、php優化包,eaccelerator,memcache,PDO_MYSQL,ImageMagick,imagick,ZendGuardLoader
7、都啟動了netstat -ntlp檢查mysql/php/nginx的埠。
8、追問給你個詳細的鏈接。
⑧ 如何在linux編譯和使用ACE
一:下載源碼
http://download.dre.vanderbilt.e/
目前最新版本6.1.2。如果只使用ACE,可以選擇選擇ACE only (tar+gzip format)。
二:編譯
2.1 設置環境變數
在當前用戶目錄下,找到.bash_profile(centos版本)文件或.profile(ubuntu版本)文件,在該文件末尾增加內容:
export PATH
export ACE_ROOT=/home/yleesun/3rd/ACE_wrappers
export LD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib:$LD_LIBRARY_PATH
具體ACE_ROOT的路徑,根據實際情況修改。
2.2 執行編譯命令
在$ACE_ROOT/ace目錄下運行命令:
ln -s config-linux.h config.h
在$ACE_ROOT/include/makeinclude目錄下執行命令:
ln -s platform_linux.GNU platform_macros.GNU
回到目錄$ACE_ROOT下,執行命令:make
大概20分鍾左右編譯完成。
三:使用ACE編程
ACE庫編譯完成,下面寫個程序試試。
#include <ace/Log_Msg.h>
#include <ace/OS_main.h>
using namespace std;
int ACE_TMAIN(int argc, ACE_TCHAR *argv[])
{
ACE_DEBUG((LM_DEBUG, ACE_TEXT(「Hello World!」)));
return 0;
}
該文件命名為acetest.cpp
執行下面命令進行編譯:
g++ -I$ACE_ROOT -lACE -L$ACE_ROOT/lib -o acetest acetest.cpp
編譯成功,運行:
./acetest
列印出:Hello World!
注意:g++ 命令後面到參數
-I$ACE_ROOT // 指定包含到頭文件路徑,此處是大寫的 I ,include 的第一個字母到大寫。
-lACE // 指定包含到庫名稱,此處是小寫的 l,library 的第一個字母到小寫。
-L$ACE_ROOT/lib // 指定依賴庫到路徑,此處是大寫到L,library 的第一個字母到大寫。
⑨ centos 怎樣寫linux命令
Linux的常用基本命令。
首先啟動Linux。啟動完畢後需要進行用戶的登錄,選擇登陸的用戶不同自然許可權也不一樣,其中「系統管理員」擁有最高許可權。
在啟動Linux後屏幕出現如下界面顯示:
……
Red Hat Linux release 9 (Shrike)
Kernel2.4.20.8 on an i686
login:
輸入:root(管理員名)後,計算機顯示輸口令(password:),輸入你的口令即可。當計算機出現一個「#」提示 符時,表明你登錄成功!
屏幕顯示Linux提示符:[root@localhost root]#_
這里需要說明的是「Red Hat Linux release 9 (Shrike)」表示當前使用的操作系統的名稱及版本。「2.4.20.8」表示Linux操作系統的核
心版本編號。「i686」表示該台電腦使用的CPU的等級。
下面我們來介紹常用基本命令
一,注銷,關機,重啟
注銷系統的logout命令
1,Logout 注銷是登陸的相對操作,登陸系統後,若要離開系統,用戶只要直接下達logout命令即可:
[root@localhost root]#logout
Red Hat Linuxrelease 9(Shike)
Kernel2.4.20.8 on an i686
Login: ← 回到登陸的畫面
2,關機或重新啟動的shutdown命令
Shutdown命令可以關閉所有程序,依照用戶的需要,重新啟動或關機。
參數說明如下:
立即關機:-h 參數讓系統立即關機。範例如下:
[root@localhost root]#shutdown –h now ← 要求系統立即關機
指定關機時間:time參數可指定關機的時間;或設置多久時間後運行shutdown命令,範例如下:
[root@localhost root]#shutdown now ← 立刻關機
[root@localhost root]#shutdown +5 ← 5分鍾後關機
[root@localhost root]#shutdown 10:30 ← 在10:30時關機
關機後自動重啟:-r 參數設置關機後重新啟動。範例如下:
[root@localhost root]#shutdown -r now ← 立刻關閉系統並重啟
[root@localhost root]#shutdown -r 23:59 ← 指定在23:59時重啟動
3,重新啟動計算機的reboot命令
顧名思義,reboot命令是用來重新啟動系統的。常用的參數如下:
-f 參數:不依正常的程序運行關機,直接關閉系統並重新啟動計算機。
-I 參數:在在重新啟動之前關閉所有網路介面。
雖然reboot命令有個參數可以使用,但是一般只需要單獨運行reboot命令就可以了
二,文件與目錄的操作
1,列出文件列表的ls命令
ls(list)命令是非常有用的命令,用來顯示當前目錄中的文件和子目錄列表。配合參數的使用,能以不同的方式顯示目錄內容。範例
如下:
顯示當前目錄的內容:
[tony@free tony]$ ls
Desktop mail myinstall.log test.txt ← 有兩個目錄及兩個文件夾
當運行ls命令時,並不會顯示名稱以「.」開頭的文件。因此可加上「-a」參數指定要列出這些文件。範例如下:
[tony@free tony]$ ls –a
以「-s」參數顯示每個文件所有的空間,並以「-S」參數指定按所有佔用空間的大小排序。範例如下:
[tony@free tony]$ ls –s –S
總計36
4 Desktop 4 mail 24 myinstall.log 4 test.txt
在ls命令後直接加上欲顯示的目錄路徑,就會列出該目錄的內容。範例如下:
[tony@free tony]$ ls –l/usr/games
2,切換目錄的cd命令
cd(change directory)命令可讓用戶切當前所在的目錄。範例如下:
[tony@free home]$ cd tony ← 切換到當前目錄下的tony子目錄
[tony@free tony]$ cd .. ← 切換到上一層目錄
[tony@free home]$ cd / ← 切換到系統根目錄
[tony@free /]$ cd ← 切換到用戶主目錄
[tony@free tony]$ cd /usr/bin ← 切換到/usr/bin目錄
3,創建目錄的mkdir命令
Mkdir(make directory)命令可用來創建子目錄。下面的範例會在所在目錄下創建tool子目錄。
[tony@free tony]$ mkdir tool
4,刪除目錄的rmdir命令
rmdir(remove directory)命令可用來刪除「空」的子目錄。範例如下:
[tony@free tony]$ rmdir tool ← 刪除tool目錄
5,復制文件的cp命令
cp()命令可以將文件從一處復制到另一處。一般在使用cp命令將以個文件復製成另一個文件或復制到某個目錄時,需要指定原始文件
名與目的文件名或目錄。範例如下:
[tony@free tony]$ cp data1.txt data2.txt ← 將data1.txt復製成data2.txt
[tony@free tony]$ cp data3.txt /tmp/data ← 將data3復制到/tmp/data目錄中
顯示復制過程:加入-v參數可顯示命令執行過程。範例如下:
[tony@free tony]$ cp zip.txt zip2.txt ← 一般狀態下不會顯示復制過程
[tony@free tony]$ cp –v zip.txt zip3.txt ← 以-v顯示復制過程
zip.txt ->zip3.txt
遞回復制:加入「-R」參數可同時復制目錄下的所有文件及子目錄。範例如下:
[tony@free tony]$ cp –v –R * backup ← 將所有文件(含子目錄文件)復制到backup目錄
6,刪除文件或目錄的rm命令
rm(remove)命令可以刪除文件或目錄。範例如下:
[tony@free tony]$ rm myfile ← 刪除指定的文件
[tony@free tony]$ rm * ← 刪除當前目錄中的所有文件
rm命令的常用參數如下:
強迫刪除:使用-f參數時,rm命令會直接刪除文件,不再詢問。範例如下:
[tony@free tony]$ rm –f *.txt ← 強迫刪除文件
遞回刪除:-r 也是一個相當常用的參數,使用此參數可同時刪除指定目錄下的所有文件及子目錄。範例如下:
[tony@free tony]$ rm –r data ← 刪除data目錄(含data目錄下所有文件和子目錄)
[tony@free tony]$ rm –r * ← 刪除所有文件(含當前目錄所有文件,所有子目錄和子目錄下的文件)
強制刪除指定目錄:當使用-r參數刪除目錄時,若該目錄下有許多子目錄及文件,則系統會不間斷地詢問,以確認您的確要刪除
目錄或文件。若已確定要刪除所存目錄及文件,則可以使用-rf參數,如此一來,系統將直接刪除該目錄中所有的文件及子目錄,不再詢問。范
例如下:
[tony@free tony]$ rm –rf tmp 強制刪除tmp目錄及該目錄下所有文件及子目錄
顯示刪除過程:使用-v 參數。範例如下:
[tony@free tony]$ rm –v
7,讓顯示畫面暫停的more命令
為了避免畫面顯示瞬間就閃過去,用戶可以使用more命令,讓畫面在顯示滿一頁時暫停,此時可按空格鍵繼續顯示下一個畫面,或按Q鍵停
止顯示。
當使用ls命令查看文件列表時,若文件太多則可以配合more命令使用。範例如下:
[tony@free bin]$ ls –al more
單獨使用more命令時,可用來顯示文字文件的內容。範例如下:
[tony@free tony]$ more data.txt
8,連接文件的cat命令
cat(concatenate) 命令可以顯示文件的內容(經常和more命令搭配使用),或是將數個文件合並成一個文件。範例如下:
逐頁顯示 preface.txt的內容:
[tony@free tony]$ cat preface.txt more
將preface.txt 附加到outline.txt文件之後:
[tony@free tony]$ cat preface.txt >> outline.txt
將new.txt和info.txt合並成readme.txt文件:
[tony@free tony]$ cat new.txt info.txt >readme.txt
9,移動或更換文件,目錄名稱的mv命令
mv (move)命令可以將文件及目錄移動到另一個目錄下面,或更換文件及目錄的名稱。範例如下:
[tony@free backup]$ mv a.txt .. ← 將a.txt文件移到上層目錄
[tony@free backup]$ mv z1.txt z3.txt ← 將 z1.txt改名成z3.txt
[tony@free backup]$ cd.. ← 切換到上一層目錄
[tony@free tony]$ mv backup.. ← backup 目錄上移一層
10,顯示當前所在目錄的pwd命令
pwd(print working directory)命令可顯示用戶當前所在的目錄。範例如下:
[tony@free tony]$ pwd
/home/tony ← 當前所在目錄為「/home/tony」
11,查找文件的locate命令
locate 命令可用來搜索包含指定條件字元串的文件或目錄。範例如下:
[tony@free tony]$ locate zh_CN 列出所有包含「zh_CN」字元串的文件和目錄。
由於locate命令是從系統中保存文件及目錄名稱的資料庫中搜索文件,雖然系統會定時更新資料庫,但對於剛新增或刪除的文件、目錄,
仍然可能會因為資料庫尚未更新而無法查得,此時可用root身份運行updatedb命令更新,為此資料庫得內容正確。
12,搜索字元串得grep命令
grep 命令可以搜索特定字元串來並顯示出來,一般用來過濾先前得結果,避免顯示太多不必要得信息。範例如下:
[tony@free etc]$ grep text *.conf ← 搜索當前目錄中擴展名為.conf且包含「text」字元串得文件。
grep:amd.conf: ← 拒絕不符許可權得操作
grep:diskcheck.conf: ← 拒絕不符許可權得操作
grep:grub.conf ← 拒絕不符許可權得操作
若您是使用一般許可權的用戶運行,上例的輸出結果會包含很多如「拒絕不符許可權的操作之類的錯誤信息,可使用-s參數消除。
[tony@free etc]$ grep –s text *.conf
13,重導與管道
重導(redirect)可將某命令的結果輸出導文件中,它有兩中命令:「>」和「>>」。「>」可將結果輸出到文件中,該文件原有的內容會被
刪除:「>>」則將結果附加到文件中,原文件內容不會被清除。範例如下:
[tony@free tony]$ ls –a>dir.txt ← 將ls –a命令執行結果輸出到dir.txt文件。
[tony@free tony]$ cat data1.txt >> data2.txt ← 將 data1.txt 內容附加到data2.txt文件之後。
通道(pipe)命令的符號是「」,可將某命令的結果輸出給另一命令,一下範例將ls命令的輸出結果傳給grep命令過濾:
[tony@free etc]$ ls gerp conf ← 搜索並顯示ls命令運行結果中包含有「conf」字元串
在舉一個刪除文件或目錄的例子,可以利用yes命令重復輸出「y」字元的特性,將結果傳給rm命令,如此即可避免重復輸入「y」:
[tony@free tony]$ yes rm –r mydir
三,使用光碟及軟盤
在Linux的文字模式下要使用光碟或軟盤,並不是只將光碟或軟盤放入即可,用戶需要運行載入的命令,才可讀寫數據。所謂載入就是將存
儲介質(如光碟和軟盤)指定成系統中的某個目錄(如/mnt/cdrom或mnt/floppy)。通過直接存取此載入目錄,即可讀寫存儲介質中的數據。
以下就來看看文字模式下的載入及卸載命令。
1,載入的mount命令
要使用光碟時先把光碟放入光碟機,然後執行載入的mount命令,將光碟載入至系統中:
[tony@free tony]# mount/dev/cdrom/mut/cdrom ← 載入光碟
同理,使用軟盤之前也需要和光碟一樣,必須先載入後才能使用:
[tony@free tony]# mount/dev/fd0/mut/floppy ← 載入軟盤
2,卸載的umount命令
如果不需要使用光碟或軟盤,則需先執行卸載命令之後,才能將光碟或軟盤退出。範例如下:
[tony@free tony]# umount / mnt/cdrom ← 光碟卸載
在不使用軟盤時執行umount 命令卸載軟盤,再將軟盤拿出
[tony@free tony]# umount / mnt/ ← 軟盤卸載
四,在後台運行程序
用戶有時的程序有可能要花費很多時間,如果將它放在前台運行,將導致無法繼續做其他事情,最好的方法就是將它放在後台運行,甚至
可能希望在用戶注銷系統後,程序還可以繼續運行。讓我們看看那如何實現這一目的。
1,在後台運行程序的&、bg命令
將程序放到後台運行的最簡單方法就是在命令最後加上「&」,範例如下:
[tony@free root]# updatedb & ← 在後台執行 locate 資料庫更新命令
[tony@free root]# bg ← 將更新操作放到後台運行
2,前台運行的程序fg命令
如果用戶當前已有程序在後台運行,可以輸入fg命令,將它從背景中移到前台運行:
[tony@free root]# fg ← 放到前台執行的命令會顯示出來
3,在退出後讓程序繼續運行的nohup命令
此命令可使用戶退出系統後,程序繼續運行。範例如下:
[tony@free rony]$ nohup myserver &
然後用戶就可以退出了,當再次登錄的時候,可以用ps –aux命令看到程序仍在後台中運行。
五,任務調度命令
計算機有很多程序需要周期性的被運用,例如清理磁碟中不要的暫存檔、備份系統數據、檢查遠程伺服器的郵件等。對於這些重復性的工
作,其實不需要每次都辛苦地運行這些程序。可利用任務調度命令,指定系統定期在某個時間運行這些程序,輕輕鬆鬆完成想要執行的工作。
任務調度的crond常駐命令
crond 是Linux用來定期執行程序的命令。當安裝完成操作系統後,默認便會啟動此任務調動命令。crond命令每分鍾會定期檢查是否有要
執行的工作,如果有要執行的工作,便會自動執行該工作。由於任務調度中間的操作過程十分繁雜,我們只將任務調度文件的寫法介紹給大家
,供大家參閱:
Minute Hour Day Month DayOfWeek Command
在這段文字中除了「Command」是每次都必須指定的欄位以外,其他自動皆可視需求自行決定是否指定。
六,任務調度的系統工作
/ect/crontab/文件是Linux系統工程的任務調度設置文件,其默認的內容如下:
SHELL=/bin/bash ← 指定執行任務調度工作時所使用的SHELL
PATH=/shin:/bin:/usr/sbin:/usr/bin ← 指定命令搜索的路徑
MAILTO=root ← 指定將輸出結果給root用戶
HOME=/ ← 指定跟目錄
⑩ centos怎麼編譯linux系統
有些軟體會有 make uninstall 之類的功能,但大多都沒有,所以只有手動刪除,或者在configure的時候加個preifx參數,比如 --preifx=/opt/squid,這樣當你不用的時候直接rm -rf /opt/squid 就可以了。