除了使用Linux的包管理機制進行軟體的安裝、更新和卸載,從原始碼進行軟體的安裝也是非常常見的,開源軟體提供了原始碼包,開發人員可以方便的通過原始碼進行安裝。從源碼安裝軟體一般經過軟體配置、編譯軟體、執行安裝3個步驟。
想每天聽到小妞的語音播報,想學更多學校裡和書本上學不到的IT技術或技能,歡迎關注公眾號:xiniubook2008。或加微博:我的圖書我做主,參加活動,免費獲書。
7.3.1 軟體配置
由於軟體要依賴系統的底層庫資源,軟體配置主要功能為檢查當前系統軟硬體環境,確定當前系統是否滿足當前軟體需要的軟體資源。配置命令一般如下:
[root@CentOSvim73]#./congure –prefix=/usr/local/vim73
其中的--prefix 用來指定安裝路徑,編譯好的二進位檔案和其他檔案將被安裝到此處。
不同的軟體configure 指令碼都提供豐富的選項,在執行完成後,系統會根據執行的選項和系統的配置產生一個編譯規則檔案Makefile。要查看當前軟體配置時支援哪些參數,可以使用./configure --help命令。
7.3.2 編譯軟體
在配置好編譯選項後,系統已經產生了編譯軟體需要的Makefile,然後利用這些Makefile進行編譯。編譯軟體執行make命令:
[root@CentOSvim73]# make
執行make 命令後make 會根據Makefile 檔案來產生目標檔案,如二進位程式等。
7.3.3 軟體安裝
編譯完成後,執行make install 命令來安裝軟體:
[root@CentOSvim73]# #make install
一般情況下安裝完成後就可以使用安裝的軟體了,如沒有指定安裝路徑,一般的軟體會備安裝在/usr/local下面建立對應的檔案夾,部分軟體二進位檔案會安裝在/usr/bin或/usr/local/bin/目錄下,對應的標頭檔會安裝到/usr/include,軟體協助文檔會安裝到/usr/local/share目錄下。
如果指定目錄,則會在指定目錄建立相應的檔案夾。安裝軟體完畢後使用該軟體需要使用絕對路徑或對環境變數的進行配置,也就是需要把當前軟體二進位檔案的目錄加入到系統的環境變數PATH中。
Vim是一款優秀的文字編輯器,豐富擴充了vi編輯器的很多功能,被廣大開發人員廣泛使用,同類型的編輯軟體還有Emacs等。通過樣本7-6示範如何通過原始碼安裝該軟體。樣本中同時包含了安裝軟體時遇到的問題及解決方案。
(1)首先查看系統中有無Vim,如有先進行卸載,以免混淆。
【樣本7-6】
#查看系統中是否有Vim軟體
[root@CentOS~]# vim --version|head
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Apr 112013 03:32:13)
#查看vim檔案位置
[root@CentOS~]# which vim
/usr/bin/vim
#查看當前軟體屬於哪個軟體包
[root@CentOS~]# rpm -qf /usr/bin/vim
vim-enhanced-7.2.411-1.8.el6.x86_64
#將當前已安裝的軟體包卸載掉
[root@CentOS~]# rpm -e vim-enhanced-7.2.411-1.8.el6.x86_64
#查看檔案是否還存在
[root@CentOS~]# ls -lhtr /usr/bin/vim
ls: cannot access /usr/bin/vim: No such file ordirectory
(2)經過上面的步驟後,確認系統中已經不存在Vim,下面進行Vim的安裝。Vim最新版可以在網站http://www.vim.org/下載。
【樣本7-6】續
[root@CentOS~ ]#cd /data/soft
#上傳原始碼包
[root@CentOSsoft]# rz -bye
rz waiting to receive.
開始 zmodem 傳輸. 按 Ctrl+C 取消.
Transferring vim-7.3.tar.bz2...
100% 8867 KB 4433 KB/s 00:00:02 0 錯誤
#將原始碼包解壓
[root@CentOSsoft]# tar xvf vim-7.3.tar.bz2
vim73/
vim73/Makefile
vim73/src/Makefile
vim73/configure
vim73/src/configure
vim73/src/auto/configure
#部分結果省略
vim73/src/configure.in
vim73/src/
[root@CentOSsoft]# cd vim73
#查看檔案清單,部分結果省略
[root@CentOSvim73]# ls
configure README_unix.txt Makefile src
#第1步:進行軟體的配置
[root@CentOSvim73]# ./configure
configure: creating cache auto/config.cache
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
#部分結果省略
checking for tgetent()... configure: error: NOTFOUND!
Youneed to install a terminal library; for example ncurses.
Orspecify the name of the library with --with-tlib.
#某些庫不存在,尋找到並安裝,此時用的是rpm包安裝方式
[root@CentOSvim73]# cd -
/cdrom/Packages
[root@CentOSPackages]# ls -l ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
-r--r--r--. 2 root root 657212 Jul 3 2011ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
#安裝依賴的包
[root@CentOSPackages]# rpm -ivh ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
warning:ncurses-devel-5.7-3.20090208.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature,key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:ncurses-devel ########################################### [100%]
[root@CentOSPackages]# cd -
/data/soft/vim73
#再次進行軟體的配置
[root@CentOSvim73]# ./configure --prefix=/usr/local/vim73
configure: creating cache auto/config.cache
checking whether make sets $(MAKE)... yes
#部分結果省略
checking whether we need -D_FORTIFY_SOURCE=1... yes
configure: creating auto/config.status
config.status: creating auto/config.mk
config.status: creating auto/config.h
#第2步:進行軟體的編譯
[root@CentOSvim73]# make
If there are problems, cd to the src directory andrun make there
cd src && make first
make[1]: Entering directory `/data/soft/vim73/src'
mkdir objects
CC="gcc -Iproto -DHAVE_CONFIG_H " srcdir=. sh ./osdef.sh
gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 -D_FORTIFY_SOURCE=1 -o objects/buffer.o buffer.c
#部分結果省略
(3)經過上面的步驟後,Vim軟體已經編譯完成,下面繼續Vim的安裝。
【樣本7-6】續
#第3步:進行Vim的安裝
[root@CentOSvim73]# make install
Startingmake in the src directory.
If thereare problems, cd to the src directory and run make there
cd src&& make install
make[1]:Entering directory `/data/soft/vim73/src'
if test -f/usr/local/vim73/bin/vim; then \
mv -f /usr/local/vim73/bin/vim/usr/local/vim73/bin/vim.rm; \
rm -f /usr/local/vim73/bin/vim.rm; \
fi
cp vim/usr/local/vim73/bin
#部分結果省略
[root@CentOSvim73]# vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Apr 112013 03:32:13)
(4)至此Vim軟體安裝完成。如需使用,需要使用絕對路徑或設定環境變數PATH。
【樣本7-6】續
#使用vim發現命令不存在
[root@CentOSvim73]# vim –version
-bash: /usr/local/bin/vim: No such file or directory
[root@CentOSvim73]# cd /usr/local/vim73/
[root@CentOSvim73]# ls
bin share
[root@CentOSvim73]# export PATH=/usr/local/vim73/bin/:$PATH:.
[root@CentOSvim73]# vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Apr 112013 03:32:13)
以上樣本示範了如何通過原始碼安裝指定的軟體,安裝過程經過軟體配置、軟體編譯和軟體安裝等步驟。安裝軟體時如果指定了安裝目錄沒,則需要使用絕對路徑或將該軟體的二進位檔案所在的目錄加入到系統變數PATH路徑中,以便在不使用絕對路徑時仍然可以使用安裝的軟體。
喜歡可以購買《超容易的Linux系統管理入門書》。目前Linux中國正在舉辦互動,寫書評就能拿書!