centos編譯
⑴ centos 配置編譯選項是什麼
./configure ,這一步一般用來生成 Makefile,為下一步的編譯做准備,你可以通過在 configure 後加上參數來對安裝進行控制,比如
代碼:
./configure --prefix=/usr
上面的意思是將該軟體安裝在 /usr 下面,執行文件就會安裝在 /usr/bin (而不是默認的 /usr/local/bin),
資源文件就會安裝在 /usr/share(而不是默認的/usr/local/share)。
同時一些軟體的配置文件你可以通過指定 --sys-config= 參數進行設定。
有一些軟體還可以加上 --with、--enable、--without、--disable 等等參數對編譯加以控制,
你可以通過允許 ./configure --help 察看詳細的說明幫助。
⑵ 如何升級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
-
⑶ 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下編譯安裝新內核的方法了,希望可以幫助到大家!
⑷ centos7怎麼編譯安裝gcc-c++
下為最近升級gcc4.9.2的實際操作步驟
環境: CentOS-7.2 , 當前版本為gcc-4.8.5,用root進行安裝
1、先要執行下面這一條命令,安裝g++:
yum install gcc-c++
2、 gcc 編譯需要三個額外庫gmp、mpfr、mpc,下載並按照下面的順序安裝它們,如下:
wget ftp://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.gz
wget ftp://ftp.gnu.org/gnu/mpfr/mpfr-3.1.2.tar.gz
wget http://www.multiprecision.org/mpc/download/mpc-1.0.tar.gz
tar -zxvf gmp-5.1.3.tar.gz
cd gmp-5.1.3
./configure
make && make install
cd ..
tar -zxvf mpfr-3.1.2.tar.gz
cd mpfr-3.1.2
./configure
make && make install
cd ..
tar -zxvf mpc-1.0.tar.gz
cd mpc-1.0
./configure
make && make install
cd ..
3、安裝gcc:
wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2
tar -jxvf gcc-4.9.2.tar.bz2
cd gcc-4.9.2
./contrib/download_prerequisites
cd ..
mkdir gcc-build-4.9.2
cd gcc-build-4.9.2
../gcc-4.9.2/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make
make install
4、修改/usr/bin/下gcc版本
執行/usr/bin/gcc --version查看版本:
gcc (GCC) 4.4.7-4
/usr/local/bin/gcc --version:
gcc (GCC) 4.8.2
發現多個版本的gcc。
此時執行以下操作:
mv /usr/bin/gcc /usr/bin/gcc4.4.7
ln -s /usr/local/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++4.4.7
ln -s /usr/local/bin/g++ /usr/bin/g++
mv /usr/bin/cc /usr/bin/cc4.4.7
ln -s /usr/local/bin/gcc /usr/bin/cc
mv /usr/bin/c++ /usr/bin/C++4.4.7
ln -s /usr/local/bin/c++ /usr/bin/c++
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
5、檢查動態庫:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
⑸ centos7系統源碼編譯安裝php7.3.5版本
新增系統用戶組和用戶:
下載 PHP7.3.5
[root@localhost ~]# mkdir devdir
[root@localhost ~]# cd devdir/
[root@localhost devdir]# wget https://www.php.net/distributions/php-7.3.5.tar.gz
-bash: wget: 未找到命令
[root@localhost devdir]# rpm -qa|grep wget
[root@localhost devdir]# yum -y install wget
[root@localhost devdir]# rpm -qa|grep wget
wget-1.14-18.el7.x86_64
下載PHP7 解壓 編譯
wget -c https://downloads.php.net/~cmb/php-7.3.4.tar.gz
編譯參數解釋
--with-fpm-user=webu --with-fpm-group=webg 添加PHP運行用戶和用戶組
配置信息出錯:
下載gcc軟體編譯器 yum install -y gcc
configure: error: libxml2 not found. Please check your libxml2 installation.
下載libzip-1.5.2.tar.gz
https://libzip.org/download/libzip-1.5.2.tar.gz
解決libzip 和cmake版本問題
重新配置PHP7編譯環境參數
libzip-1.5.2 無法安裝,已經取消了。
提示off_t類型沒有定義 undefind,解決方法:
編譯安裝
測試PHP是否安裝成功
轉載自:https://my.oschina.net/u/4127346/blog/3047778