談談FreeBSD軟件安裝方法

小提示
筆者并不建議您使用 portupgrade 來安裝所有軟件,尤其不建議使用參數(shù) -a 來更新所有軟件。一方面新的軟件不一定會更好,另一方面,我們很難保證更新后的軟件會正常運作。而且我們在安裝軟件時,并不一定只使用 make install,還有可能在 make 后加上一些參數(shù)以支持更多的功能,直接使用 portupgrade 并不一定還能保留這些功能。我們介紹 portupgrade 的目只是為了讓您在安裝 Open WebMail 時更新 perl 時更順暢。
10.6 傳統(tǒng)安裝方式
我們介紹了 FreeBSD 獨有的 package 及 port 安裝方式后,接下來我們還是要詳細說明一下傳統(tǒng)上在 UNIX 機器上安裝軟件的方式。
有的時候,我們要想要裝的軟件可能不在 port 里,或者 port 中的軟件版本尚未更新,這時候我們就必須使用傳統(tǒng)的安裝方式來安裝軟件?;旧?,傳統(tǒng)安裝方式就像本章開頭所說的,大多必須要有下列步驟:
* 從該軟件網(wǎng)站或其它 FTP 站臺下載該軟件,有可能是 binary 檔或是原始碼。
* 解壓縮該檔案,通常是以 tar 或 gzip、bzip2 壓縮的。
* 讀一下該目錄中的說明文件,可能是 readme 或是 doc/ 的文件,來了解如何安裝該軟件。
* 如果所下載的是原始碼,可能要先編輯一下 Makefile 或是執(zhí)行 configure,接著再編譯該軟件。
* 最后再測試與安裝。
我們以 MySQL 這個軟件為例。
下載及解壓縮
首先我們到 MySQL 網(wǎng)站上下載最新的原始碼。一般原始碼大多以指令 tar 包成一個檔案,再壓縮成 gzip 或是 bzip2 格式。所以您下載的檔案擴展名大多為 .tar.gz、.tgz、或是 .tar.bz2。
擴展名為 .tar.gz 或是 .tgz 的檔案為 tar + gzip 格式,MySQL 的原始碼就是這一種類型。我們可以使用下列指令來解壓縮:
# tar zxvf mysql-4.1.13.tar.gz
如果擴展名為 .tar.bz2 的檔案,則是 tar + bzip2 的格式,遇到這種格式時,我們可以使用下列指令解壓縮:
# tar jxvf mysql-4.1.13.tar.bz2
我們可以看到上述二種格式都可以使用 tar 來解壓縮,只是 gzip 格式必須使用參數(shù) z,而 bzip2 的格式必須使用參數(shù) j。指令 tar 的其它參數(shù)所代表的意義為:x 是解開的意思、v 是要觀看解開的過程、f 是指定要解壓縮的文件名稱。
解開之后,我們就可以進入下一步開始安裝。
查看說明檔
每個軟件在安裝上大同小異,但有的軟件除了一般安裝流程外,可能還有自己獨特步驟。所以在安裝之前,我們必須先看一下說明檔,以了解如何進行安裝。
大部份的開放原始碼軟件都會有 README 或是 INSTALL 這二個檔案,用以說明安裝的步驟。有的軟件可能有其它檔案,但我們可以從檔名了解應該要看哪一個說明檔。以 MySQL 為例,在它的原始碼包裝中,有一個檔名為 INSTALL-SOURCE 的檔案,應該就是我們要看的安裝說明檔。我們使用文書編輯器打開該檔后,可以看到一些關于安裝的說明。MySQL 的說明檔寫的蠻詳細的,但我們可以將重點放在 Installation 的地方:
2.8.1 Source Installation Overview
----------------------------------
The basic commands you must execute to install a MySQL source
distribution are:
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cd /usr/local/mysql
shell> bin/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql var
shell> chgrp -R mysql .
shell> bin/mysqld_safe --user=mysql &
我們可以看到它的安裝步驟寫的很詳細,還有指令范例。簡單來看,應該就是要先增加一個使用者為 mysql,并增加 mysql 群組。接著再解壓縮原始碼、進行編譯、安裝、并做一些安裝后的設定。
編譯
在 MySQL 的安裝步驟中,編譯前要先進行 configure。事實上,大多數(shù)的開放原始碼軟件編譯流程都使用下列三個步驟:
# ./configure
# make
# make install
第一個指令是 configure,這個指令可以用來檢查您目前系統(tǒng)的設定,并依您的使用環(huán)境決定要不要加入某些功能。您也可以使用下列指令查看 configure 指令中可以使用哪些參數(shù):
# ./configure --help | more
原則上,除非有特殊要求,否則我們直接執(zhí)行 configure 即可。以 MySQL 為例,我們在 configure 指令后面加上下列參數(shù):
# ./configure --prefix=/usr/local/mysql \
--with-low-memory \
--with-charset=big5
我們使用 --prefix 以指定要安裝的路徑,這是所有使用 configure 的軟件都會有的參數(shù)。另外,我們還指定編譯時不要使用太多內(nèi)存 (--with-low-memory),并設定 MySQL 支持中文字集 (--with-charset=big5)。
執(zhí)行完 configure 檢查環(huán)境并設定安裝的項目后,我們就可以使用 make 來進行編譯。指令 make 會呼叫編譯器 gcc 來將原始碼轉(zhuǎn)換成執(zhí)行檔。
安裝
編譯完后,我們可以使用下列指令安裝:
# make install
您可以看到程序安裝的過程。安裝完成后,我們必須依不同的軟件要求進行安裝后的設定。以 MySQL 為例,我們必須先使用 mysql_install_db 以初始化數(shù)據(jù)庫,并將一些目錄的擁有者設定為 mysql。
最后就可以啟動 mysql 了。而如果我們要在開機時啟動 MySQL,必須將它的啟動指令加入 /etc/rc.local 中,或是在 /usr/local/etc/rc.d 中加入一個 mysql.sh 并將啟動的指令寫在該檔案中,然后將 mysql.sh 設為可執(zhí)行。如此一來,F(xiàn)reeBSD 在開機時就會自動執(zhí)行它。
以上就是一般傳統(tǒng)軟件安裝的流程:configure、make、make install,其實使用上也不太難。
小提示
傳統(tǒng)的安裝流程比較容易遇到的問題可能是在執(zhí)行 make 時發(fā)生錯誤,如果您遇到問題,可以在 google 上查找 make 所產(chǎn)生的第一個錯誤的關鍵詞,應該可以找到類似的問題及解決的方法。
相關文章
Unix,BSD,Linux系統(tǒng)三者的區(qū)別小結(jié)
這篇文章主要介紹了Unix,BSD,Linux系統(tǒng)三者的區(qū)別小結(jié),需要的朋友可以參考下2023-05-03- 一些朋友問小編FreeBSD如何添加硬盤?別擔心,今天小編就為大家分享FreeBSD添加硬盤的方法,希望對大家會有幫助,有需要的朋友一起去看看吧2017-04-06
- 今天小編為大家?guī)淼氖荈reebsd PF 安裝使用詳解,希望對大家會有幫助,有需要的朋友一起去看看吧2017-04-06
FreeBSD下zfs: failed with error 6錯誤如何解決?
最近一些朋友問小編 FreeBSD下zfs: failed with error 6錯誤如何解決?今天小編要為大家?guī)淼氖?FreeBSD下zfs: failed with error 6錯誤的解決方法,有需要的朋友一起去看2017-04-06Unix文件系統(tǒng)和pwd命令實現(xiàn)詳解
今天小編要為大家?guī)淼氖荱nix文件系統(tǒng)和pwd命令實現(xiàn)詳解,希望對大家會有幫助,有需要的朋友一起去看看吧2017-04-01- 今天小編將為大家?guī)淼氖荱nix中的dot命令詳解!希望對大家會有幫助!有需要的朋友一起去看看吧2017-03-22
- 近日!一些朋友對于freebsd時間設置小節(jié)存在疑慮!下面小編將為大家?guī)淼氖莊reebsd時間設置小節(jié)詳解!希望對大家會有幫助!有需要的朋友一起去看看吧2017-03-19
- 今天小編要為大家?guī)淼氖莋rub2引導freebsd詳解!希望對大家會有幫助,有需要的朋友一起去看看吧2017-03-19
- 下面小編為大家?guī)淼氖荈reeBSD10安裝內(nèi)核源代碼方法講解!希望能夠幫助到大家!有需要的朋友一起去看看吧2017-03-19
FreeBSD下如何使GraphicsMagick支持中文字體?
最近一些朋友在問FreeBSD下如何使GraphicsMagick支持中文字體?今天小編為大家?guī)淼氖荈reeBSD下使GraphicsMagick支持中文字體的方法!有需要的朋友一起去看看吧2017-03-15