Linux編譯安裝
Linux上真正可以執行的文件是二進制文件,這些可以執行的二進制文件是哪兒來的呢?首先,必須要寫程序的源代碼,然后,由編譯程序將程序的源代碼 編譯成二進制形式。源代碼是由程序員編寫的,使用特定的程序語言,如C,C++,Java,Python。但是機器看不懂這些語言,所以要使用編譯程序將這些語言編寫的源代碼編譯成機器可以看懂的二進制文件。如C語言常用的編譯器 為gcc。
C代碼編譯安裝三步驟:
1、./configure:
(1) 通過選項傳遞參數,指定啟用特性、安裝路徑等;執行時會參考用戶的指定以及makefile.in文件生成makefile
(2) 檢查依賴到的外部環境
2、make:根據makefile文件,構建應用程序
3、make install:復制文件到相應路徑
開發工具: autoconf: 生成configure腳本 automake:生成Makefile.in
注意:安裝前查看INSTALL,README
開源程序源代碼的獲取方式:
官方自建站點:
apache.org (ASF)
mariadb.org
…
代碼托管:
SourceForge.net
Github.com
code.google.com
上面我們說到程序的源代碼是需要編譯的,那么我們編譯就需要編譯軟件?,F在我們要做的是編譯安裝軟件前的環境準備
1)這里我們要安裝軟件的編譯環境首先要用到yum軟件還要為yum配置yum倉庫
[root@centos7 cdrom]# cd /etc/yum.repos.d/ [root@centos7 yum.repos.d]# cat base.repo # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS 7 Base baseurl=http://10.1.0.1/cobbler/ks_mirror/7/ gpgcheck=1 [cdrom] name=Centos 7 cdrom baseurl=file:///mnt/cdrom gpgcheck=0
2)yum倉庫準備好后我們可以安裝編譯環境了,安裝Development Tools。
[root@centos7 ~]# yum groupinstall "Development Tools"
3)編譯環境準備好之后我們就要去找到程序的源代碼開始進行編譯安裝了,我們上面說到過通過何種渠道獲取程序源代碼。
我們這里以apache httpd的編譯安裝為例給大家舉個例子:
這里我是到內部的ftp服務器上去找到源碼文件,大家嘗試安裝的時候可以去官方站點去獲取。
先安裝lftp,然后登陸服務器下載程序源代碼包;
[root@centos7 ~]# yum install lftp lftp 10.1.0.1:/pub/Sources/sources/httpd> mget httpd-2.2.29.tar.bz2 5625498 bytes transferred [root@centos7 ~]# ls anaconda-ks.cfg Documents haha.sh initial-setup-ks.cfg Pictures Templates Desktop Downloads httpd-2.2.29.tar.bz2 Music Public Videos
解壓httpd-2.2.29.tar.bz2,進入httpd-2.2.29目錄(需要注意的是這里編譯安裝是需要在解壓后的文件目錄中進行的)
[root@centos7 ~]# tar -xf httpd-2.2.29.tar.bz2 [root@centos7 ~]# ls anaconda-ks.cfg Documents haha.sh httpd-2.2.29.tar.bz2 Music Public Videos Desktop Downloads httpd-2.2.29 initial-setup-ks.cfg Pictures Templates
前面我們已經把編譯安裝需要的軟件環境和程序源代碼都準備好了,接著我們要開始編譯安裝了。
根據源碼包中 Makefile.in 文件的指示,configure腳本檢查當前的系統環境和配置選項,在當前目錄中生成 Makefile 文件。然后 make 程序就按照當前目錄中的 Makefile 文件的指示將源代碼編譯為二進制文件,最后將這些二進制文件按照Makefile文件的指示安裝到指定的地方。
1)configure腳本:
通過選項傳遞參數,指定啟用特性、安裝路徑等,執行時會參考用戶的指定以及makefile.in文件生成makefile檢查依賴到的外部環境
選項:指定安裝位置、指定啟用的特性
–help: 獲取其支持使用的選項
選項分類:
安裝路徑設定:
–prefix=/PATH: 指定默認安裝位置,默認為/usr/local/
–sysconfdir=/PATH:配置文件安裝位置
System types:支持交叉編譯
Optional Features: 可選特性
–disable-FEATURE
–enable-FEATURE[=ARG]
Optional Packages: 可選包
–with-PACKAGE[=ARG] 依賴包
–without-PACKAGE 禁用依賴關系
[root@centos7 httpd-2.2.29]# ./configure --prefix=/usr/local/apache2 sysconfdir=/etc/apache2
2)make
[root@centos7 httpd-2.2.29]# make
3) make install
[root@centos7 httpd-2.2.29]# make install
最后我們可以測試我們的安裝是否完成,并且功能可以使用
[root@centos7 bin]# apachectl start ttpd: apr_sockaddr_info_get() failed for centos7.zang httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName httpd (pid 12167) already running
我們可以使用links來試一下
完成安裝之后的配置:
1)導出二進制程序目錄至PATH環境變量中
/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
編譯安裝完成之后我們可以把apache添加到環境變量里
[root@centos7 apache2]# ls bin build cgi-bin conf error htdocs icons include lib logs man manual modules [root@centos7 apache2]# pwd /usr/local/apache2 [root@centos7 profile.d]# vim apache2.sh [root@centos7 profile.d]# . apache2.sh [root@centos7 profile.d]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/apache2/bin [root@centos7 profile.d]# cat apache2.sh PATH=$PATH:/usr/local/apache2/bin
2)導出庫文件路徑
編輯/etc/ld.so.conf.d/NAME.conf
添加新的庫文件所在目錄至此文件中
[root@centos7 ld.so.conf.d]# vim /etc/ld.so.conf/apache.conf /usr/local/apache2/lib
ldconfig
3)導出頭文件
這里用軟鏈接功能實現
[root@centos7 apache2]# ln -sv /usr/local/apache2/include/* /usr/include/
4)導出幫助手冊
編輯/etc/man.config文件
#--------------------------------------------------------- # every automatically generated MANPATH includes these fields # #MANDATORY_MANPATH /usr/src/pvm3/man # MANDATORY_MANPATH /usr/man MANDATORY_MANPATH /usr/share/man MANDATORY_MANPATH /usr/local/share/man MANDATORY_MANPATH /usr/local/apatch2/man -->此行為編輯添加 #---------------------------------------------------------
至此,編譯安裝軟件完成。我們可以看到,編譯安裝程序需要:安裝好環境、獲取源代碼包、編譯安裝、最后配置完成。
系統kernel被刪除之后的恢復
上面介紹完了編譯安裝,現在說說系統kernel被刪除之后系統啟動不起來怎么辦呢?當然我們不會自己去刪除kernel,有時候可能是被惡作劇或者糟糕的情況是被黑掉了,我們需要怎么恢復呢?
首先我們需要一張系統的光盤,然后就可以開始著手恢復系統了
1)開機進度條時按ESC鍵(手一定要快,而且只能按一次ESC鍵,否則你就只能重啟主機)。
出現如下圖所示:
選擇CDROM選項
2)之后先擇如圖:
3)到這步時,選擇1選項Continue
4)進入到如下界面,安裝kernel
安裝完成后重啟主機,你會發現你的系統已經恢復了。
原創文章,作者:zanghonglei,如若轉載,請注明出處:http://www.www58058.com/39539
文章整體思路清晰,通過實際操作對理論的東西進行了實踐,同時如果能對實踐過程中遇到的問題進行總結,這樣會讓整個文章看起來更專業,更有可讀性.