欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

FreeBSD軟件安裝卸載工具--Ports和Packages詳解

  發(fā)布時(shí)間:2008-09-08 18:48:44   作者:佚名   我要評(píng)論
1、如何只抓取 tarball? 2、如何僅做到解開(kāi) tarball的步驟? 3、如何僅做到解開(kāi) tarball 并補(bǔ)上官方提供的 patch? 4、如何安裝一個(gè)新的 port? 5、如何安裝一個(gè)新的 port,并將打包(package)起來(lái)? 6、如何打包一個(gè) port,并將其所有相依的 ports 也打

29、如何安裝 packages?

目前 FreeBSD 的 packages 是由 .tgz 所打包。如果想安裝一個(gè) packages ,可
使用 pkg_add,如安裝一個(gè) joe 的 tgz:

代碼:
pkg_add joe-{version}.tgz



30、如何強(qiáng)制安裝 packages?

由於有些 packages 會(huì)有與其他 packages 相依性的關(guān)系,所以必須先行安裝
些 packages 才能正常安裝。 如果須要強(qiáng)制安裝 packages ,可以不須安裝那些
有相依性 packages ,但要注意的是強(qiáng)制安裝的結(jié)果可能會(huì)導(dǎo)致執(zhí)行或運(yùn)作的不
正常。強(qiáng)制安裝 packages 的指令如下,如強(qiáng)制安裝一個(gè) joe 的 tgz:


代碼:
pkg_add -f joe-{version}.tgz



31、如何查詢(xún) packages 與其他 packages 之間的相依性?

由於有些 packages 會(huì)有與其他 packages 相依性的關(guān)系,所以必須先行安裝
些 packages 才能正常安裝。 查詢(xún) packages 與其他 packages 之間的相依性的
指令如下,如查詢(xún)與 portupgrade 相依的其他 packages:


代碼:
pkg_info -r portupgrade-{version}.tgz



32、如何遠(yuǎn)端安裝 packages?

有兩種設(shè)定方式,首先是 PACKAGEROOT,如:

setenv PACKAGEROOT ftp://ftp.cn.freebsd.org #設(shè)定 PACKAGEROOT 為 ftp.cn.freebsd.org 站臺(tái)

另一種方式是設(shè)定 PACKAGESITE,好處是若該站臺(tái)的 packages 倉(cāng)儲(chǔ)并不是符合
官方的設(shè)定或你想自己指定一個(gè)路徑。
ftp.cn.freebsd.org i386 的 current pakcages 為例:

setenv PACKAGESITE ftp://ftp.cn.freebsd.org/pub/FreeBSD/ports/i386/packages-current/Latest/

兩種方式選擇其中一種皆可,接下來(lái)的步驟都一樣。
往後要安裝 packages 的時(shí)候,如 portupgrade 的話(huà),則:

代碼:
pkg_add -r portupgrade


系統(tǒng)會(huì)自動(dòng)於 ftp.cn.freebsd.org 抓取所有與 portupgrade 相依的 packages 并安裝。


33、如何更新 INDEX 對(duì)照表?

4.x 的 INDEX 位於 /usr/ports/INDEX,5.x 位於 /usr/ports/INDEX-5。
INDEX 是對(duì)照 ports 所有相依等資訊的對(duì)照表,若長(zhǎng)期未更新的話(huà),會(huì)導(dǎo)致
ports 對(duì)照失敗。官方有定期更新 INDEX,如果 想自行更新的話(huà),則:

代碼:
cd /usr/ports/
make index



34、如何更新 INDEX HTML?

FreeBSD 提供了用網(wǎng)頁(yè)的方式來(lái)觀(guān)看 ports collection,即可使用 lynx, w3m,
links 或其它可瀏覽網(wǎng)頁(yè)的程式來(lái)查閱。制作全部 ports collection 的方式如
下:

代碼:
cd /usr/ports/
make readmes


如果是僅須要做目前目錄下的資訊,或單一更新某一分類(lèi)下的資訊,如 /usr/ports/ftp/ 的話(huà),則:
代碼:
cd /usr/ports/ftp/
make readme


則僅會(huì)更新 /usr/ports/ftp/ 這個(gè)目錄的資訊,其上與其下的目錄皆不會(huì)更動(dòng)
到。 執(zhí)行成功後,會(huì)在相對(duì)應(yīng)的目錄下產(chǎn)生 README.html 的檔案。


35、如何針對(duì)某些 ports 不做 CVSup?

若 ports 底下的某些分類(lèi)完全用不到,則可以在 CVSup 時(shí),不做更新,以節(jié)省
網(wǎng)路頻寬與時(shí)間。

代碼:
# vi /usr/sup/refuse
******************************************
ports/french
ports/german
ports/hebrew
ports/hungarian
ports/japanese



那麼則上述目錄下的檔案皆不會(huì)更新。

如果是想要某些單一的 ports 不做同步,例如想保留舊版不做同步,或新版出現(xiàn)
問(wèn)題時(shí)。

代碼:
# vi /usr/sup/refuse
******************************************
ports/lang/perl5.8


那麼 ports/lang/perl5.8 這個(gè) ports 不會(huì)做 CVSup 同步。

這些設(shè)定方法支援萬(wàn)用字元。

代碼:
# vi /usr/sup/refuse
******************************************
ports/lang/perl*
ports/po*



36、如何使用 CVSup 同步 ports collections?

請(qǐng)叁考 gslin 的 用 CVSup 去更新你的 source tree 以及 ports tree。


37、安裝 ports 出現(xiàn) port is outdated 的錯(cuò)誤訊息

例如安裝 imap-uw 時(shí),出現(xiàn)以下內(nèi)容:
Your installation of the cclient port is outdated. Please delete it before continuing.

表示因?yàn)橄鄬?duì)應(yīng),且已安裝好的 cclient 這個(gè)軟體過(guò)於老舊,建議先升級(jí)這個(gè)軟
體再行安裝 imap-uw。因此只要先升級(jí) cclient 後,再安裝即可。

代碼:
# cd /usr/ports/mail/cclient/
# make reinstall 或 # make deinstall && make install
# cd /usr/ports/mail/imap-uw/
# make install



38、安裝 ports 出現(xiàn) OpenSSL vulnerabilities 的錯(cuò)誤訊息

安裝有些套件時(shí),如果有相依於 OpenSSL 時(shí),且判斷系統(tǒng)目前使用的 OpenSSL 版本有漏洞問(wèn)題時(shí),會(huì)出現(xiàn)如下的訊息:
Dependency warning: used OpenSSL version contains known
vulnerabilities Please update or define either WITH_OPENSSL_BASE or
WITH_OPENSSL_PORT

一般建議的解決方法有二種。

第一種:升級(jí)系統(tǒng)(需含系統(tǒng)內(nèi)建之 OpenSSL 一并升級(jí)),再安裝該套件
可以先查詢(xún)目前系統(tǒng)所用之 OpenSSL 的版本:
代碼:
openssl version -v


升級(jí)系統(tǒng)可叁考 FNP: upgrade core system 或 FNP: upgrade major system。
升級(jí)完系統(tǒng)後,再進(jìn)行一次 OpenSSL 版本之確認(rèn)。
然後再安裝該套件,這訊息就不會(huì)出現(xiàn)了。

第二種:使該套件相依於 ports tree 中的 OpenSSL
這種方法會(huì)安裝 ports tree 中新版本的 OpenSSL,然後相依於此新版本的
OpenSSL,而不是系統(tǒng)本身內(nèi)建的 OpenSSL。只要安裝套件時(shí),加入 WITH_OPENSSL_PORT 的叁數(shù),
即會(huì)安裝 ports tree 中的 OpenSSL,并且該套件
也會(huì)相依於此。方法如下:
代碼:
make -DWITH_OPENSSL_PORT install


這里不建議用叁數(shù) WITH_OPENSSL_BASE,因?yàn)檫@表示安裝套件時(shí),是相依於原本
系統(tǒng)中可能有漏洞的 OpenSSL,這樣會(huì)導(dǎo)致安全性的問(wèn)題。


39、如何在 FreeBSD 上模擬 Linux 的環(huán)境?

最新最完整的資料在官方的 Handbook 上。

簡(jiǎn)單來(lái)說(shuō),F(xiàn)reeBSD 核心必須支援,且必須安裝 Linux Runtime Libraries,最
後做一些設(shè)定。

如果要執(zhí)行 Linux ELF Binaries,可以先查詢(xún)目前 FreeBSD 是否已經(jīng)支援 Linux ELF。

代碼:
brandelf -l


看是否有 Linux 的字樣,如果沒(méi)的話(huà),請(qǐng)回頭檢查是否哪一步驟沒(méi)有做到。

然後檢查執(zhí)行檔是否為 Linux ELF Binaries。

代碼:
brandelf execution-binary-filename


如果是 Linux ELF Binaries,則正常執(zhí)行即可。

如果顯示結(jié)果不是 Linux ELF Binaries,但是自己確定是 Linux ELF Binaries
的話(huà),則只要更改一下 ELF 的格式即可。
brandelf -t Linux execution-binary-filename

然後再檢查一次是否已經(jīng)修正為正確的格式。


40、如何在 FreeBSD 上安裝 Linux rpm?

請(qǐng)確定已經(jīng)成功在 FreeBSD 上模擬 Linux 的環(huán)境,請(qǐng)叁考 FAQ 39。

安裝 rpm 的方式如下:

代碼:
rpm --ignoreos --root /compat/linux --dbpath /var/lib/rpm/ -Uvh xxx.rpm



41、安裝 ports 時(shí),原本應(yīng)該出現(xiàn)的清單選項(xiàng)不見(jiàn)了

這是由於系統(tǒng)會(huì)紀(jì)錄曾安裝過(guò) ports 的當(dāng)時(shí)所選擇的清單選項(xiàng),因此有時(shí)會(huì)因?yàn)?
安裝時(shí)出了問(wèn)題,或是再一次安裝時(shí),就不會(huì)出現(xiàn)清單可以選擇。如何讓清單選
項(xiàng)重新出現(xiàn)呢?

代碼:
make clean
make showconfig # 顯示設(shè)定的內(nèi)容
make rmconfig # 清除設(shè)定的內(nèi)容
make config


之前設(shè)定 ports 的選項(xiàng)預(yù)設(shè)會(huì)紀(jì)錄在 /var/db/ports/{ports_name}/options 內(nèi)
容中。如要查看之前 python 有選擇的清單選項(xiàng):

代碼:
cat /var/db/ports/python/options



42、如何檢查是否有安裝重覆的 ports/packages?

隨著時(shí)間的演進(jìn),不同時(shí)間安裝的軟體會(huì)有不同版本的釋出,而且不同軟體相依
的版本號(hào)也不同,所以往往會(huì)造成同一個(gè)軟體安裝過(guò)多版本的情形發(fā)生。

這里我必須聲明的是,雖然套件名稱(chēng)相同,可是可能沒(méi)辦法上下相容,因此造成
有些軟體必須依賴(lài)比較舊的版本,而有些軟體必須依賴(lài)比較新的版本,如果有這
種情形發(fā)生的話(huà),那麼二個(gè)版本的存在是正常的。

否則的話(huà),我們會(huì)建議移除舊版的套件,將所有相依於此套件改為相依於新版
的。也就是說(shuō),移除舊版的套件,然後將原本相依於舊版的套件,改為相依於新
版的套件。注意,我強(qiáng)調(diào)的是新舊版套件是相容的。因?yàn)檫@種做法有點(diǎn)危險(xiǎn),因
此不提供做法,請(qǐng)使用更水階的套件管理工具,如 portupgrade 來(lái)完成。

檢查是否有安裝重覆的 ports/packages 的方法如下:

代碼:
pkg_info | sort | sed -e 's/-[0-9].*$//' | uniq -c | grep -v '^[[:space:]]*1'


如果有一行是顯示" 3 libtool",則表示目前系統(tǒng)安裝三種不同版本的
libtool套件。
接下來(lái)可以檢查這三種版本是否可以相容:

代碼:
cd /usr/ports/
make search name=libtool


如果發(fā)現(xiàn)分別有三種 ports 來(lái)代表這三種不同版本的 libtool,就表示他們彼此
不相容,必須保留三者,否則可能會(huì)發(fā)生相依問(wèn)題。假設(shè)如下:

代碼:
/usr/ports/devel/libtool13
/usr/ports/devel/libtool14
/usr/ports/devel/libtool15


反之,如果發(fā)現(xiàn)只有一種 ports 來(lái)代表這種不同版本的套件,則表示目前系統(tǒng)
裝的三種版本是相容的,只要修改原本相容於其它二種版本所有的套件,并指向
欲保留的那個(gè)版本,然後移除其它二種即可。如發(fā)現(xiàn)系統(tǒng)目前有安裝三種不同版
本的 gettext:

代碼:
cd /usr/ports/
make search name=gettext


然後檢查的結(jié)果如下:

代碼:
/usr/ports/devel/gettext


則將所有相依於 gettext 舊版本的其它套件都改為相依於新版的 gettext,然後
再移除系統(tǒng)中舊版的 gettext 即可。


43、`make deinstall' 與 `pkg_delete' 有什麼不同?

簡(jiǎn)單來(lái)說(shuō),`make deinstall' 會(huì)移除該 port,并且不會(huì)叁照其相依/相關(guān)的 ports。

`pkg_delete' 在移除該 port 前,會(huì)叁照其相依/相關(guān)的 ports,并且 `pkg_delete'
有支援 wild card,如要移除所有 p 開(kāi)頭的 ports,則:

代碼:
cd /var/db/pkg/
pkg_delete p*


[color=red]要注意的是,如果使用 `make deinstall',則最好確定系統(tǒng)目前所
安裝的版本,與 ports collection 中顯示的版本符合,否則有可能會(huì)出現(xiàn)非預(yù)
期性錯(cuò)誤;而 `pkg_delete' 是因?yàn)橹苯觿h除系統(tǒng)中所安裝的版本,所以沒(méi)有此
問(wèn)題。

因此,換句話(huà)說(shuō),當(dāng)系統(tǒng)安裝的版本符合 ports collections 中的版本,則可
以使用 `make deinstall' 或 `pkg_delete',否則的話(huà)最好用 `pkg_delete'。


與 `make deinstall' 相關(guān)的資訊:FAQ 11、FAQ 12及FAQ 13。
與 `pkg_delete' 相關(guān)的資訊:FAQ 11、FAQ 12及FAQ 15。


44、安裝 ports 出現(xiàn) local modification time does not match remote 的錯(cuò)誤訊息

這通常表示你已經(jīng)下載了這個(gè)檔案在 /usr/ports/distfiles 的對(duì)應(yīng)目錄中,但
是它并不是 port collections 所期望下載的。通常的解決方法
在 /usr/ports/distfiles 的對(duì)應(yīng)目錄中移除此檔案,再重新抓取。

例如是安裝 joe 時(shí)出現(xiàn)如下的錯(cuò)誤訊息:
fetch: joe2.8.tar.Z: local modification time does not match remote

則將 joe2.8.tar.Z 於 /usr/ports/distfiles 中移除:

代碼:
cd /usr/ports/editors/joe/
make distclean

相關(guān)文章

  • Unix,BSD,Linux系統(tǒng)三者的區(qū)別小結(jié)

    這篇文章主要介紹了Unix,BSD,Linux系統(tǒng)三者的區(qū)別小結(jié),需要的朋友可以參考下
    2023-05-03
  • FreeBSD如何添加硬盤(pán)?FreeBSD添加硬盤(pán)的方法

    一些朋友問(wèn)小編FreeBSD如何添加硬盤(pán)?別擔(dān)心,今天小編就為大家分享FreeBSD添加硬盤(pán)的方法,希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧
    2017-04-06
  • Freebsd PF 安裝使用詳解

    今天小編為大家?guī)?lái)的是Freebsd PF 安裝使用詳解,希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧
    2017-04-06
  • FreeBSD下zfs: failed with error 6錯(cuò)誤如何解決?

    最近一些朋友問(wèn)小編 FreeBSD下zfs: failed with error 6錯(cuò)誤如何解決?今天小編要為大家?guī)?lái)的是 FreeBSD下zfs: failed with error 6錯(cuò)誤的解決方法,有需要的朋友一起去看
    2017-04-06
  • Unix文件系統(tǒng)和pwd命令實(shí)現(xiàn)詳解

    今天小編要為大家?guī)?lái)的是Unix文件系統(tǒng)和pwd命令實(shí)現(xiàn)詳解,希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧
    2017-04-01
  • Unix中的dot命令詳解

    今天小編將為大家?guī)?lái)的是Unix中的dot命令詳解!希望對(duì)大家會(huì)有幫助!有需要的朋友一起去看看吧
    2017-03-22
  • freebsd時(shí)間設(shè)置小節(jié)詳解

    近日!一些朋友對(duì)于freebsd時(shí)間設(shè)置小節(jié)存在疑慮!下面小編將為大家?guī)?lái)的是freebsd時(shí)間設(shè)置小節(jié)詳解!希望對(duì)大家會(huì)有幫助!有需要的朋友一起去看看吧
    2017-03-19
  • grub2引導(dǎo)freebsd詳解

    今天小編要為大家?guī)?lái)的是grub2引導(dǎo)freebsd詳解!希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧
    2017-03-19
  • FreeBSD10安裝內(nèi)核源代碼方法講解

    下面小編為大家?guī)?lái)的是FreeBSD10安裝內(nèi)核源代碼方法講解!希望能夠幫助到大家!有需要的朋友一起去看看吧
    2017-03-19
  • FreeBSD下如何使GraphicsMagick支持中文字體?

    最近一些朋友在問(wèn)FreeBSD下如何使GraphicsMagick支持中文字體?今天小編為大家?guī)?lái)的是FreeBSD下使GraphicsMagick支持中文字體的方法!有需要的朋友一起去看看吧
    2017-03-15

最新評(píng)論