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

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

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

29、如何安裝 packages?

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

代碼:
pkg_add joe-{version}.tgz



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

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


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



31、如何查詢 packages 與其他 packages 之間的相依性?

由於有些 packages 會有與其他 packages 相依性的關(guān)系,所以必須先行安裝
些 packages 才能正常安裝。 查詢 packages 與其他 packages 之間的相依性的
指令如下,如查詢與 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 站臺

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

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

兩種方式選擇其中一種皆可,接下來的步驟都一樣。
往後要安裝 packages 的時候,如 portupgrade 的話,則:

代碼:
pkg_add -r portupgrade


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


33、如何更新 INDEX 對照表?

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

代碼:
cd /usr/ports/
make index



34、如何更新 INDEX HTML?

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

代碼:
cd /usr/ports/
make readmes


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


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


35、如何針對某些 ports 不做 CVSup?

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

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



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

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

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


那麼 ports/lang/perl5.8 這個 ports 不會做 CVSup 同步。

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

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



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

請叁考 gslin 的 用 CVSup 去更新你的 source tree 以及 ports tree。


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

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

表示因?yàn)橄鄬?yīng),且已安裝好的 cclient 這個軟體過於老舊,建議先升級這個軟
體再行安裝 imap-uw。因此只要先升級 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 的錯誤訊息

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

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

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


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

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


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


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

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

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

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

代碼:
brandelf -l


看是否有 Linux 的字樣,如果沒的話,請回頭檢查是否哪一步驟沒有做到。

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

代碼:
brandelf execution-binary-filename


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

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

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


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

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

安裝 rpm 的方式如下:

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



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

這是由於系統(tǒng)會紀(jì)錄曾安裝過 ports 的當(dāng)時所選擇的清單選項(xiàng),因此有時會因?yàn)?
安裝時出了問題,或是再一次安裝時,就不會出現(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è)會紀(jì)錄在 /var/db/ports/{ports_name}/options 內(nèi)
容中。如要查看之前 python 有選擇的清單選項(xiàng):

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



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

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

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

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

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

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


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

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


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

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


反之,如果發(fā)現(xiàn)只有一種 ports 來代表這種不同版本的套件,則表示目前系統(tǒng)
裝的三種版本是相容的,只要修改原本相容於其它二種版本所有的套件,并指向
欲保留的那個版本,然後移除其它二種即可。如發(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' 有什麼不同?

簡單來說,`make deinstall' 會移除該 port,并且不會叁照其相依/相關(guān)的 ports。

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

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


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

因此,換句話說,當(dāng)系統(tǒng)安裝的版本符合 ports collections 中的版本,則可
以使用 `make deinstall' 或 `pkg_delete',否則的話最好用 `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 的錯誤訊息

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

例如是安裝 joe 時出現(xiàn)如下的錯誤訊息:
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如何添加硬盤?FreeBSD添加硬盤的方法

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

    今天小編為大家?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-06
  • Unix文件系統(tǒng)和pwd命令實(shí)現(xiàn)詳解

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

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

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

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

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

    最近一些朋友在問FreeBSD下如何使GraphicsMagick支持中文字體?今天小編為大家?guī)淼氖荈reeBSD下使GraphicsMagick支持中文字體的方法!有需要的朋友一起去看看吧
    2017-03-15

最新評論