亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: 劍心通明
打印 上一主題 下一主題

[FreeBSD] 本版頂置及非官方FAQ,歡迎補充,嚴禁灌水! [復(fù)制鏈接]

論壇徽章:
2
IT運維版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00
31 [報告]
發(fā)表于 2006-01-16 23:54 |只看該作者
30.如何在舊版本ports基礎(chǔ)上強行安裝新版本ports?

# make install -D "FORCE_PKG_REGISTER" clean

好像只在一些不是很重要的ports才有效,我原有g(shù)lib-2.6.x,強行安裝glib-2.8.5成功,不過強行安裝linux_base-8貌似失敗)

[ 本帖最后由 zero-B 于 2006-6-26 14:49 編輯 ]

論壇徽章:
2
IT運維版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00
32 [報告]
發(fā)表于 2006-04-11 02:47 |只看該作者
31、如何使ports在安裝時不檢查下載軟件的MD5和SHA256

有時我們從ports安裝軟件的時候會出一些問題,比如VSFTPD我就喜歡改動一些東西然后在安裝。這時,我們可以使用
# make NO_CHECKSUM=yes
來跳過MD5和SHA256的檢驗,除非逼不得已或?qū)ψ约旱男薷暮苡行判,否則建議make是不要使用此參數(shù)。


PS:其實很多小技巧都是在make的過程中提示的,大家稍微看下提示也能知道,如果您覺得自己的英文不過關(guān),那就請多看看精華,會有收獲的。

論壇徽章:
2
IT運維版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00
33 [報告]
發(fā)表于 2006-06-26 14:47 |只看該作者
關(guān)于ports和packages的其他信息


摘抄并簡體化此文,與初學(xué)同仁共享。

==================================

FNP:FAQ - Ports and Packages v 1.5
2004.08.20 Table of Contents

1、如何只抓取 tarball?
2、如何僅做到解開 tarball的步驟?
3、如何僅做到解開 tarball 并補上官方提供的 patch?
4、如何安裝一個新的 port?
5、如何安裝一個新的 port,并將打包(package)起來?
6、如何打包一個 port,并將其所有相依的 ports 也打包起來?
7、如何對一個已經(jīng)安裝的 port 打包?
8、如何清理 ports 編輯期間所產(chǎn)生的暫存資料?
9、如何清理 ports 編輯期間所產(chǎn)生的暫存資料,以及其相對應(yīng)的 tarball?
10、如何在安裝 ports 前查詢所需依賴/相關(guān)的套件?
11、如何移除已安裝的 ports?
12、如何一并移除所相依的 ports?
13、如何重新安裝已安裝過的 ports?
14、如何以關(guān)鍵字搜尋 ports?
15、如何升級已安裝的 ports?
16、如何查詢目前系統(tǒng)安裝了哪些套件?
17、如何查詢目前系統(tǒng)有沒有安裝這個關(guān)鍵字的套件?
18、如何查詢某個檔案是屬於哪些套件?
19、如何查詢某個套件安裝了哪些檔案?
20、如何安裝舊版的 ports?
21、如何更新 ports Mk?
22、如何解決安裝 ports 時出現(xiàn) sed -i 的錯誤?
23、如何列出所有可以升級的 ports?
24、如何得知 ports system 對某個 ports 所提供的編譯叁數(shù)?
25、如何手動加入編譯 ports 的叁數(shù)?
26、如何指定 ports 的安裝路徑?
27、安裝 ports 出現(xiàn) FORCE_PKG_REGISTER 的錯誤訊息
28、安裝 ports 出現(xiàn) Shared object libintl.so.X not found 的錯誤訊息
29、如何安裝 packages?
30、如何強制安裝 packages?
31、如何查詢 packages 與其他 packages 之間的相依性?
32、如何遠端安裝 packages?
33、如何更新 INDEX 對照表?
34、如何更新 INDEX HTML?
35、如何針對某些 ports 不做 CVSup?
36、如何使用 CVSup 同步 ports collections?
37、安裝 ports 出現(xiàn) port is outdated 的錯誤訊息
39、安裝 ports 出現(xiàn) OpenSSL vulnerabilities 的錯誤訊息
40、如何在 FreeBSD 上模擬 Linux 的環(huán)境?
41、如何在 FreeBSD 上安裝 Linux rpm?
42、安裝 ports 時,原本應(yīng)該出現(xiàn)的清單選項不見了
43、如何檢查是否有安裝重覆的 ports/packages? `make deinstall' 與 `pkg_delete' 有什麼不同?
44、安裝 ports 出現(xiàn) local modification time does not match remote 的
錯誤訊息


1、如何只抓取 tarball?

如果只希望抓取 tarball 下來的話,僅需下 make fetch 即可。
如果是要抓取單一的 port,以 editors/joe 為例的話,則:

  1. cd /usr/ports/editors/joe/
  2. make fetch
復(fù)制代碼



預(yù)設(shè)會將 joe 的 tarball 下載至 /usr/ports/distfiles/ 目錄下。
如果是希望抓取安裝此 ports 所有須要的其他 ports 的 tarball,以

systuils/portupgrade 為例的話,則:

  1. cd /usr/ports/systuils/portupgrade/
  2. make fetch-recursive
復(fù)制代碼



預(yù)設(shè)會將此 ports 的 tarball 與所有須要的其他 ports 的 tarball,下載至 /usr/ports/distfiles/ 目錄下。

如果是希望抓取全部所有 ports 的 tarball ,則:

  1. cd /usr/ports/
  2. make fetch
復(fù)制代碼



則會所將全部所有 ports 的 tarball 下載至 /usr/ports/distfiles/ 目錄下。
如果是希望抓取全部 ftp 下所有 ports 的 tarball ,則:

  1. cd /usr/ports/ftp/
  2. make fetch  
復(fù)制代碼



則會所將全部 ftp 下所有 ports 的 tarball 下載至 /usr/ports/distfiles/
目錄下。

2、如何僅做到解開 tarball的步驟?

有時候習(xí)慣自己 patch/修正 原始碼的時候,很常用到這個功能。
以 editors/joe 為例的話,則:

  1. cd /usr/ports/editors/joe/
  2. make extract
復(fù)制代碼


會將 tarball解開至 /usr/ports/editors/joe/work/ 目錄下。

3、如何僅做到解開 tarball 并補上官方提供的 patch?

此方法與 2 有一些類似,不同於是先補上官方提供的 patch ,再行 patch 自己
的修正。以 editors/joe 為例的話,則:

  1. cd /usr/ports/editors/joe/
  2. make patch
復(fù)制代碼



會將 tarball解開至 /usr/ports/editors/joe/work/ 目錄下,并已經(jīng) patch 上
官方提供的 patch。

4、如何安裝一個新的 port?

如果系統(tǒng)上未安裝此軟體,則可以選擇安裝一個新的 port。
以 editors/joe 為例的話,則:

  1. cd /usr/ports/editors/joe/
  2. make install
復(fù)制代碼



如此會在系統(tǒng)上安裝一個新的 joe 軟體。如果需要在安裝完成後,一并清除編輯
時期所留下來的暫存目錄,則可叁考 FAQ 8 的方法,一起使用,如:

  1. cd /usr/ports/editors/joe/
  2. #make clean
復(fù)制代碼



如果想要一次清掉所有 ports 產(chǎn)生的暫存資料,則只要回到 ports 的根目錄執(zhí)
行即可:

  1. cd /usr/ports/
  2. #make clean
復(fù)制代碼



5、如何安裝一個新的 port,并將打包(package)起來?

將安裝完成的軟體打包起來,有許多便利性:包括在叢集系統(tǒng)中,可供其它機器
使用,或?qū)⑽磥泶塑涹w出問題可重新利用此 package 重新快速安裝。
以 editors/joe 為例的話,則:

  1. cd /usr/ports/editors/joe/
  2. #make package
復(fù)制代碼



如此會在系統(tǒng)上安裝一個新的 joe 軟體,并將此軟體打包(package)起來。

package 預(yù)設(shè)會在 /usr/ports/editors/joe/ 目錄下,如果希望集中管理的話,
建議做如下的步驟:

  1. mkdir -p /usr/ports/packages/All/
復(fù)制代碼



以後打包的 packages 都會存放在此目錄下,并且系統(tǒng)會自動做分類,以方便管
理。如果需要在安裝完成後,一并清除編輯 時期所留下來的暫存目錄,則可叁
考 FAQ 8 的方法,一起使用,如:

  1. cd /usr/ports/editors/joe/
  2. make package clean
復(fù)制代碼



6、如何打包一個 port,并將其所有相依的 ports 也打包起來?

因為 FAQ 5 只有對最終的 port 才進行打包,中間依賴的 ports 并沒有一起打
包,這會出現(xiàn)一個常遇到 的問題,就是如果編輯一個 port 需要依賴其它的
ports,那麼必須將其它 ports 也一起打包,否則安裝 packages 會有相 依賴其
它 ports 的 packages 的問題。
以 sysutils/portupgrade 為例的話,則:

  1. cd /usr/ports/sysutils/portupgrade/
  2. make DEPENDS_TARGET=package package
復(fù)制代碼



如此會在對所有 portupgrade 所相依賴的 ports 一并打包,也包括自己本身。

7、如何對一個已經(jīng)安裝的 port 打包?

如果安裝好一個套軟,事前并未打包,事後想打包的話,則:
以 editors/joe 為例的話

  1. cd /var/db/pkg/
  2. pkg_create -b joe-{版本號}  
復(fù)制代碼



會將已安裝的 port 打包起來,放在 /var/db/pkg/ 目錄下。

8、如何清理 ports 編輯期間所產(chǎn)生的暫存資料?

在編輯 port 的時候,會有編輯期間所需要的工作目錄(work),因此通常安裝好
一個套件後,會清除此暫存目錄,以節(jié)省系 統(tǒng)磁碟空間。
以 editors/joe 為例的話,則:

  1. cd /usr/ports/editors/joe/
  2. make clean
復(fù)制代碼



如果是希望清除所有 ports 的暫存目錄,則:

  1. cd /usr/ports/
  2. make clean  
復(fù)制代碼



如果是希望清除全部 ftp 下所有的暫存目錄,則:

  1. cd /usr/ports/ftp/
  2. make clean
復(fù)制代碼




9、如何清理 ports 編輯期間所產(chǎn)生的暫存資料,以及其相對應(yīng)的 tarball?


在 FAQ 8 中,僅只是清除編輯期間所需要的工作目錄(work),并沒有將編譯
ports 時一并下載的 tarball 刪除(相對應(yīng)之 tarball 預(yù)設(shè)會存放
在 /usr/ports/distfiles/),如果欲把 tarball 一并刪除,
以 editors/joe 為例的話,則:

  1. cd /usr/ports/editors/joe/
  2. make distclean
復(fù)制代碼



make distclean 的步驟包含了 make clean 的功能,也就是說除了會刪除
tarball 外,還會一并M除編輯期間所需要的工作目錄。

如果是希望清除所有 ports 的暫存目錄,及 tarball ,則:

  1. cd /usr/ports/
  2. make distclean
復(fù)制代碼


如果是希望清除全部 ftp 下所有的暫存目錄,及 tarball,則:

  1. cd /usr/ports/ftp/
  2. make distclean
復(fù)制代碼




10、如何在安裝 ports 前查詢所需依賴/相關(guān)的套件?

在安裝 ports 前,可以查詢所需依賴/相關(guān)的套件。
以 mail/p5-Mail-SpamAssassin 為例的話,則:

  1. cd /usr/ports/mail/p5-Mail-SpamAssassin/
  2. make all-depends-list #顯示所有相關(guān)的套件
  3. make pretty-print-build-depends-list #顯示編譯期間所需要的套件
  4. make pretty-print-run-depends-list #顯示此套件要執(zhí)行時所需要的套件
復(fù)制代碼



11、如何移除已安裝的 ports?

以 editors/joe 為例的話,則:

  1. cd /usr/ports/editors/joe/
  2. make deinstall
復(fù)制代碼



或是使用 pkg_delete

  1. cd /var/db/pkg/
  2. pkg_delete joe-{version}  
復(fù)制代碼



有時候套件之間的相依性會導(dǎo)致無法直接移除,如果要強制移除的話,則:

  1. cd /var/db/pkg/
  2. pkg_delete -f joe-{version}  
復(fù)制代碼



但很有可能會導(dǎo)致其它的套件執(zhí)行起來出現(xiàn)問題。

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

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

以 sysutils/portupgrade 為例的話,則:

  1. cd /usr/ports/sysutils/portupgrade/
  2. make deinstall-depends  
復(fù)制代碼


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

或是使用 pkg_delete

  1. cd /var/db/pkg/
  2. pkg_delete -r portupgrade-{version}  
復(fù)制代碼



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

13、如何重新安裝已安裝過的 ports?


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

  1. cd /usr/ports/editors/joe/
  2. make deinstall
  3. make clean
  4. make install 或 make reinstall  
復(fù)制代碼



14、如何以關(guān)鍵字搜尋 ports?

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

  1. cd /usr/ports/
  2. make search key=ldap  
復(fù)制代碼



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

  1. cd /usr/ports/ftp/
  2. make search key=ldap  
復(fù)制代碼


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

  1. cd /usr/ports/
  2. make search name=ldap  
復(fù)制代碼



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

  1. cd /usr/ports/ftp/
  2. make search name=ldap  
復(fù)制代碼




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

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

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

  1. cd /var/db/pkg/
  2. pkg_delete joe-{version}
  3. cd /usr/ports/editors/joe/
  4. make install  
復(fù)制代碼


或是

  1. cd /usr/ports/editors/joe/
  2. make clean
  3. make reinstall  
復(fù)制代碼




16、如何查詢目前系統(tǒng)安裝了哪些套件?

查詢目前系統(tǒng)已安裝的全部套件:

  1. pkg_info  
復(fù)制代碼



17、如何查詢目前系統(tǒng)有沒有安裝這個關(guān)鍵字的套件?
此方法類似 FAQ 16 :

  1. pkg_info | grep  
復(fù)制代碼


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

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

  1. pkg_info -W /usr/local/bin/joe  
復(fù)制代碼



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


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

如果想查詢目前系統(tǒng)所安裝的 joe 包含了哪些檔案,則:

  1. pkg_info -L /var/db/pkg/joe-{version}  
復(fù)制代碼




20、如何安裝舊版的 ports?

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

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

  1. # vi /usr/share/examples/cvsup/ports-supfile
  2. ******************************************
  3. default date=2002.10.05.00.00.00 #將 date 改成當(dāng)日  
復(fù)制代碼



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

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

  1. # vi /usr/share/examples/cvsup/ports-supfile
  2. ******************************************
  3. #ports-all #將 ports-all 標示起來
  4. ports-lang #加入這行  
復(fù)制代碼



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


21、如何更新 ports Mk?

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

  1. cd /usr/src/
  2. make update
  3. cd /usr/src/share/mk
  4. make install  
復(fù)制代碼




22、如何解決安裝 ports 時出現(xiàn) sed -i 的錯誤?

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

  1. cd /usr/ports/???/???/
  2. make -DUSE_REINPLACE install  
復(fù)制代碼



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

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

  1. pkg_version -c  
復(fù)制代碼




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

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

  1. cd /usr/ports/sysutils/portupgrade/
  2. make -DNOPORTDOCS install # make NOPORTDOCS=yes install 亦同  
復(fù)制代碼



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

  1. cd /usr/ports/sysutils/portupgrade/
  2. grep defined Makefile  
復(fù)制代碼



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


25、如何手動加入編譯 ports 的叁數(shù)?

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

  1. cd /usr/ports/ftp/pure-ftpd/
  2. make CONFIGURE_ARGS+="--without-inetd" install  
復(fù)制代碼



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

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

  1. cd /usr/ports/editors/joe/
  2. make PREFIX=/usr install  
復(fù)制代碼



那麼 joe 就會將檔案對應(yīng)在 /usr 目錄下,而不是預(yù)設(shè)的 /usr/local 目錄下。


27、安裝 ports 出現(xiàn) FORCE_PKG_REGISTER 的錯誤訊息

問題敘述:
當(dāng)你先前已經(jīng)用ports 安裝過某一軟體 當(dāng)你要再次透過ports 安裝同一軟體時,
很有可能會出現(xiàn)類似下述的錯誤訊息產(chǎn)生.

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

再次安裝

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


===> 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 出現(xiàn) Shared object libintl.so.X not found 的錯誤訊息

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

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

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


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

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

簡單的解決方式:


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

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

當(dāng)你在安裝gmake時,gmake會去連結(jié)安裝gmake當(dāng)時的libinl.so的版本,是version 4.
也就是 libintl.so.4

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

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

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

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

或是簡單的用偷吃步 把*目前版本*link過去..QQ (版本6..類推)


然後就可以順利進行程式安裝.



29、如何安裝 packages?

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

  1. pkg_add joe-{version}.tgz  
復(fù)制代碼



30、如何強制安裝 packages?

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


  1. pkg_add -f joe-{version}.tgz
復(fù)制代碼




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

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


  1. pkg_info -r portupgrade-{version}.tgz  
復(fù)制代碼




32、如何遠端安裝 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/Fre ... ges-current/Latest/

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

  1. pkg_add -r portupgrade  
復(fù)制代碼



則系統(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,如果 想自行更新的話,則:

  1. cd /usr/ports/
  2. make index  
復(fù)制代碼



34、如何更新 INDEX HTML?

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

  1. cd /usr/ports/
  2. make readmes  
復(fù)制代碼



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

  1. cd /usr/ports/ftp/
  2. make readme  
復(fù)制代碼



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


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

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

  1. # vi /usr/sup/refuse
  2. ******************************************
  3. ports/french
  4. ports/german
  5. ports/hebrew
  6. ports/hungarian
  7. ports/japanese
復(fù)制代碼




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

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


  1. # vi /usr/sup/refuse
  2. ******************************************
  3. ports/lang/perl5.8  
復(fù)制代碼



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

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


  1. # vi /usr/sup/refuse
  2. ******************************************
  3. ports/lang/perl*
  4. ports/po*  
復(fù)制代碼




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īng),且已安裝好的 cclient 這個軟體過於老舊,建議先升級這個軟
體再行安裝 imap-uw。因此只要先升級 cclient 後,再安裝即可。

  1. # cd /usr/ports/mail/cclient/
  2. # make reinstall 或 # make deinstall && make install
  3. # cd /usr/ports/mail/imap-uw/
  4. # make install  
復(fù)制代碼




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 的版本:

  1. openssl version -v  
復(fù)制代碼



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

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

  1. make -DWITH_OPENSSL_PORT install  
復(fù)制代碼


這里不建議用叁數(shù) WITH_OPENSSL_BASE,因為這表示安裝套件時,是相依於原本
系統(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。

  1. brandelf -l  
復(fù)制代碼



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

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

  1. brandelf execution-binary-filename  
復(fù)制代碼



如果是 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 的方式如下:

  1. rpm --ignoreos --root /compat/linux --dbpath /var/lib/rpm/ -Uvh xxx.rpm  
復(fù)制代碼




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

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

  1. make clean
  2. make showconfig # 顯示設(shè)定的內(nèi)容
  3. make rmconfig # 清除設(shè)定的內(nèi)容
  4. make config  
復(fù)制代碼



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

  1. cat /var/db/ports/python/options  
復(fù)制代碼




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

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

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

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

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

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



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

  1. cd /usr/ports/
  2. make search name=libtool  
復(fù)制代碼



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

  1. /usr/ports/devel/libtool13
  2. /usr/ports/devel/libtool14
  3. /usr/ports/devel/libtool15
復(fù)制代碼



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

  1. cd /usr/ports/
  2. make search name=gettext  
復(fù)制代碼



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

  1. /usr/ports/devel/gettext  
復(fù)制代碼



則將所有相依於 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,則:

  1. cd /var/db/pkg/
  2. pkg_delete p*  
復(fù)制代碼



要注意的是,如果使用 `make deinstall',則最好確定系統(tǒng)目前所
安裝的版本,與 ports collection 中顯示的版本符合,否則有可能會出現(xiàn)非預(yù)
期性錯誤;而 `pkg_delete' 是因為直接刪除系統(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 中移除:

  1. cd /usr/ports/editors/joe/
  2. make distclean  
復(fù)制代碼



最後再重新安裝即可

[ 本帖最后由 zero-B 于 2006-7-14 10:33 編輯 ]

論壇徽章:
2
IT運維版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00
34 [報告]
發(fā)表于 2006-07-14 09:01 |只看該作者

如何把man干凈地輸出到文本中

# man command | col -b > file_name

謝謝那位在QQ里給我指點迷津的兄弟:wink:

論壇徽章:
2
IT運維版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00
35 [報告]
發(fā)表于 2006-07-14 10:08 |只看該作者
如何將ports中的軟件及其依賴關(guān)系打包制作為tbz?

在6.x的版本中,使用pkg_create -R 參數(shù)即可

來自于 congli 的勞動

論壇徽章:
2
IT運維版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00
36 [報告]
發(fā)表于 2006-07-14 22:22 |只看該作者
拷,現(xiàn)在沒有環(huán)境,明天回家寫,對不住各位了

論壇徽章:
2
IT運維版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00
37 [報告]
發(fā)表于 2006-07-22 23:02 |只看該作者
FB中給一個網(wǎng)卡設(shè)置兩個IP  from:webmasters

修改/etc/rc.conf

ifconfig_lnc0="inet 172.16.3.1 netmask 255.255.255.0"
ifconfig_lnc0_alias="inet 172.16.86.230 netmask 255.255.255.255"

論壇徽章:
1
寅虎
日期:2013-09-29 23:15:15
38 [報告]
發(fā)表于 2006-08-09 17:09 |只看該作者
啟動時出現(xiàn):
  1. Mounting root from ufs:/dev/ad2s1a
  2. Root mount failed: 6

  3. Manual root filesystem specification:
  4.   <fstype>:<device>  Mount <device> using filesystem <fstype>
  5.                                    eg:. ufs:/dev/da0s1a
  6. ?                                  List valid disk boot devices
  7. <empty line>              Abort manual input

  8. mountroot>
復(fù)制代碼


  1. 1. ufs:/dev/ad0s1a /dev/ad0s1a ufs /
  2. 2. 進入單用戶
  3. 3. 修改/etc/fstab:
  4. # mount -o rw /
  5. # cat /etc/fstab (察看原來/usr是那個區(qū),下面假設(shè)為"f")
  6. # mount /dev/ad0s1f /usr
  7. # vi /etc/fstab
  8. 存盤,重啟即可.
復(fù)制代碼

論壇徽章:
2
技術(shù)圖書徽章
日期:2013-09-04 15:21:51酉雞
日期:2013-11-01 21:20:20
39 [報告]
發(fā)表于 2006-08-10 00:02 |只看該作者
原帖由 congli 于 2006-8-9 17:09 發(fā)表
啟動時出現(xiàn):
[code]Mounting root from ufs:/dev/ad2s1a
Root mount failed: 6

Manual root filesystem specification:
  <fstype>:<device>  Mount <device> using filesystem <fsty ...

編譯內(nèi)核時,最好刪除ATA_STATIC_ID選項,這樣會省去好多麻煩。

[ 本帖最后由 mirnshi 于 2006-8-10 00:04 編輯 ]

論壇徽章:
0
40 [報告]
發(fā)表于 2008-05-09 10:45 |只看該作者
我認為我們這些菜鳥最關(guān)心的問題是
怎么樣入門   高手們的學(xué)習(xí)心得等相關(guān)的內(nèi)容
當(dāng)然這些上面的知識羅列的也是非常非常的好
希望樓主提供這樣的主題
萬分感謝      
你辛苦了
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP