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

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

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

12、如何一并移除所相依的 ports?

以 sysutils/portupgrade 為例的話,則:

代碼:
cd /usr/ports/sysutils/portupgrade/
make deinstall-depends


執(zhí)行此步驟前,請注意是否會移除應該保護的套件。建議先叁考 FAQ 10 的方法
來檢查。

或是使用 pkg_delete

代碼:
cd /var/db/pkg/
pkg_delete -r portupgrade-{version}


至於二者的差別,請叁考FAQ 43


代碼:
13、如何重新安裝安裝過的 ports?


重新安裝的前提是,之前有安裝過或目前已安裝。以 editors/joe 為例的話,
則:

代碼:
cd /usr/ports/editors/joe/
make deinstall
make clean
make install 或 make reinstall



14、如何以關鍵字搜尋 ports?

如果要從全部的 ports collection 中找尋與關鍵字 "ldap" 有關的 ports,
則:

代碼:
cd /usr/ports/
make search key=ldap


如果只要從與 ftp 相關的 ports 下找尋與關鍵字 "ldap" 有關的 ports,則:

代碼:
cd /usr/ports/ftp/
make search key=ldap


還有另一個用法,方法只是將 key 換成 name 。如果已經知道要搜尋 ports 的
名稱,或只想找名稱相關的關鍵字 "ldap", 則:

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


如果只要從 ftp 相關的 ports 下找尋名稱與關鍵字 "ldap" 有關的 ports,
則:

代碼:
cd /usr/ports/ftp/
make search name=ldap



15、如何升級已安裝的 ports?

如果已經安裝好套件,事後欲升級的話,必須先移除舊版本的 port,移除的方法
請叁考FAQ 11、FAQ 12及FAQ 13;之後再安裝 port,安裝方法請叁考FAQ 4或
FAQ 5。

以 editors/joe 為例,且以 FAQ 11 及 FAQ 4 的方法,則:

代碼:
cd /var/db/pkg/
pkg_delete joe-{version}
cd /usr/ports/editors/joe/
make install


或是
代碼:
cd /usr/ports/editors/joe/
make clean
make reinstall



16、如何查詢目前系統安裝了哪些套件?

查詢目前系統安裝的全部套件:

代碼:
pkg_info


17、如何查詢目前系統有沒有安裝這個關鍵字的套件?
方法類似 FAQ 16 :

代碼:
pkg_info | grep



18、如何查詢某個檔案是屬於哪些套件?

如果想查詢 /usr/local/bin/joe 是屬於哪個套件的話,則:

代碼:
pkg_info -W /usr/local/bin/joe


如果沒有回傳任何資訊的話,代表著這個檔案是由 FreeBSD 內建的。


19、如何查詢某個套件安裝了哪些檔案?

如果想查詢目前系統安裝的 joe 包含了哪些檔案,則:

代碼:
pkg_info -L /var/db/pkg/joe-{version}



20、如何安裝舊版的 ports?

有時候會因為相依性,或是新版有問題,而會想裝舊版本的套件。
這里的方法是利用 CVS 的好處,回歸到以前舊版本存在的日子,以安裝舊版本的
套件。首先,若我們要回復到某一個套件的版本時,需要去查詢 FreeBSD ports
CVS repository。最常見的就是 Freshports 網站、 FreeBSD 的 Mailing
FreeBSD cvs 或是 FreeBSD ports cvsweb。

查到該套件版本所依存的日子後,就修改 CVS tag。一般預設 ports 的 CVS
tag 會寫在 /usr/share/examples/cvsup/ports-supfile ,如要回朔到
2002/10/05 號的話,則:

代碼:
# vi /usr/share/examples/cvsup/ports-supfile
******************************************
default date=2002.10.05.00.00.00 #將 date 改成當日


然後按照一般 CVSup 的時候一樣,執(zhí)行 CVSup (make update),此時的 ports
collections 就會回到當時的情形,那麼該套件 舊版本也會出現在 ports
collections 中,只要安裝即可。

如果僅是想把某部份的 ports 回朔,則必須加上額外的資訊,如僅希望把
lang/perl5.8 回朔,而得知此屬於 lang 中的一支,則:

代碼:
# vi /usr/share/examples/cvsup/ports-supfile
******************************************
#ports-all #將 ports-all 標示起來
ports-lang #加入這行


最後,執(zhí)行 CVSup,并安裝即可。目前若希望單獨回朔單一的 ports,
則比較麻煩。


21、如何更新 ports Mk?

Mk (/usr/ports/Mk/) 是編譯 ports 時所叁考的設定,有時若發(fā)生 ports
collections 太新,而導致 Mk 的內容不符,此時 就是應該更新 Mk 的時候了。


代碼:
cd /usr/src/
make update
cd /usr/src/share/mk
make install



22、如何解決安裝 ports 時出現 sed -i 的錯誤?

因為 BSD style 的 sed ,也就是 BSD 本身自有的 sed ,與一些 ports 編譯期
間所執(zhí)行的 sed 不一致,所以會導致一些語 法錯誤。此時先安裝 sed_inplace
(textproc/sed_inplace),然後再安裝原本無法安裝的 ports:


代碼:
cd /usr/ports/???/???/
make -DUSE_REINPLACE install



23、如何列出所有可以升級的 ports?

ports collection 的更新速度很快,在每次更新 ports collections 後,往往
會出現比目前現在安裝的套件還新的版本,可 以令系統自行整理并提供可升級套
件的列表:

代碼:
pkg_version -c



24、如何得知 ports system 對某個 ports 所提供的編譯叁數?

所有的 ports collections 中所提供的編譯叁數都會在對應的 Makefile 檔案內
詳述,如 sysutils/portupgrade 的話,
則是位在 /usr/ports/sysutils/portupgrade/Makefile 檔案下。
可以對此檔案瀏覽以得知編譯時期可以下達的叁數,
如對 sysutils/portupgrade 有提供 NOPORTDOCS,則:

代碼:
cd /usr/ports/sysutils/portupgrade/
make -DNOPORTDOCS install # make NOPORTDOCS=yes install 亦同


那麼安裝此 ports 時,會將 NOPORTDOCS 所對應的相關叁數指定進去。
有時候設定較人性化的 ports 會在安裝前提供叁數供選擇,但是其實大部份的
ports 都沒有提供,因此必須自行去搜尋可編 譯的叁數,在此我提供的方式如
下:

代碼:
cd /usr/ports/sysutils/portupgrade/
grep defined Makefile


如此幾乎可以知道所有提供的可編譯叁數,雖然有時會多出一些不相干的資料,
不會這個確實是一個不錯可叁考的方式。


25、如何手動加入編譯 ports 的叁數?

在 FAQ 24 中的方法,是 ports collections 有提供的前提之下,有時候并不是
所有該軟體所支援的叁數 都會收納在 ports collections 中,因此有時候會需
要手動加入編譯的叁數。如 ftp/pure-ftpd 中,如果不想把 inetd 的支援編入
的選項,并沒有被 ports collections 所納入,因此必須手動加上這個 編譯叁
數,如下:

代碼:
cd /usr/ports/ftp/pure-ftpd/
make CONFIGURE_ARGS+="--without-inetd" install



26、如何指定 ports 的安裝路徑?

預設 ports collecions 已安排安裝的路徑 (/usr/local/),如果不想將套件安
裝在預設路徑的話,可以手動指定安裝路徑。 以 editors/joe 為例,則:

代碼:
cd /usr/ports/editors/joe/
make PREFIX=/usr install


那麼 joe 就會將檔案對應在 /usr 目錄下,而不是預設的 /usr/local 目錄下。


27、安裝 ports 出現 FORCE_PKG_REGISTER 的錯誤訊息

問題敘述:
當你先前已經用ports 安裝過某一軟體 當你要再次透過ports 安裝同一軟體時,
很有可能會出現類似下述的錯誤訊息產生.

意思是說 你可以透過 make deinstall 解除安裝 然後透過 make reinstall來

再次安裝

若你確定想要*覆蓋*此安裝 可以透過設定 FORCE_PKG_REGISTER 變數達成目標.


===> An older version of PORTS資料夾位置 is already installed (軟體版本)
You may wish to ``make deinstall'' and install this port again
by ``make reinstall'' to upgrade it properly.
If you really wish to overwrite the old port of PORTS資料夾位置
without deleting it first, set the variable "FORCE_PKG_REGISTER"
in your environment or the "make install" command line.

處理方式:
只要在make install 時加上 FORCE_PKG_REGISTER="yes" 就可以強制安裝.
也就是: /usr/ports/資料夾位址/#make install FORCE_PKG_REGISTER="yes"


28、安裝 ports 出現 Shared object libintl.so.X not found 的錯誤訊息

Shared object "libintl.so.4" 或 (libc.so.4) not found

問題敘述:
近來的FreeBSD版本,常常在安裝某些軟體時,會出現類似的失敗畫面
並且告訴你缺乏 libintl.so.4或是 libc.so.4 這個函式.

Shared object "libc.so.4" not found
如下圖:是近來版本安裝某些程式問題時常見的問題,缺少 libc.so.4 函式.


問題分析:
提到libc.so函式 首先想到的是與 linux 程式相關共享函式庫.
FreeBSD在讀取相關函式前,首先會在 /compat/linux 資料夾中尋找;
然後若找不到則會嘗試搜尋 /lib 資料夾.

以 libc.so 函式為例,會先尋找/compat/linux/lib/libc.so ;
其次才是/lib/libc.so .

簡單的解決方式:


Shared object "libintl.so.4" not found
跟 libc.so 函式一樣 也是在安裝某些軟體就會出現錯誤畫面.

問題分析:
libintl.so 函式是安裝 /usr/port/devel/gettext/ 程式後取得.
理論上來說 目前版本的相關函數是 libintl.so.5 為何還要去讀取舊的 libintl.so.4 版本.

當你在安裝gmake時,gmake會去連結安裝gmake當時的libinl.so的版本,是version 4.
也就是 libintl.so.4

當你更新過相關的ports (devel/gettext) 將會用 libintl.so.5 取代 libintl.so.4
除非你能取得先前某些系統保留舊有的 libintl.so.4 否則就會出現安裝失敗
狀況.

很可惜的是...有很多程式需要 gettext 函式.
你可以用 cd /usr/ports/ ; make search key="gettext" | more 查詢
為什麼要加上more 因為太多怕你看到昏頭...QQ

問題解決:
要解決這個問題 你可以透過重新建立所有與 gettext 相關的ports程式.

# portupgrade -fr gettext
重新建立或重新安裝所有與 gettext相關連的程式,
若你忘掉了 請參閱 更新ports/升級系統 > portupgrade 軟體更新

或是簡單的用偷吃步 把*目前版本*link過去..QQ (版本6..類推)
然後就可以順利進行程式安裝.

相關文章

  • Unix,BSD,Linux系統三者的區(qū)別小結

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

    一些朋友問小編FreeBSD如何添加硬盤?別擔心,今天小編就為大家分享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文件系統和pwd命令實現詳解

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

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

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

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

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

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

最新評論