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

1、如何只抓取 tarball?
2、如何僅做到解開 tarball的步驟?
3、如何僅做到解開 tarball 并補(bǔ)上官方提供的 patch?
4、如何安裝一個(gè)新的 port?
5、如何安裝一個(gè)新的 port,并將打包(package)起來(lái)?
6、如何打包一個(gè) port,并將其所有相依的 ports 也打包起來(lái)?
7、如何對(duì)一個(gè)已經(jīng)安裝的 port 打包?
8、如何清理 ports 編輯期間所產(chǎn)生的暫存資料?
9、如何清理 ports 編輯期間所產(chǎn)生的暫存資料,以及其相對(duì)應(yīng)的 tarball?
10、如何在安裝 ports 前查詢所需依賴/相關(guān)的套件?
11、如何移除已安裝的 ports?
12、如何一并移除所相依的 ports?
13、如何重新安裝已安裝過(guò)的 ports?
14、如何以關(guān)鍵字搜尋 ports?
15、如何升級(jí)已安裝的 ports?
16、如何查詢目前系統(tǒng)安裝了哪些套件?
17、如何查詢目前系統(tǒng)有沒(méi)有安裝這個(gè)關(guān)鍵字的套件?
18、如何查詢某個(gè)檔案是屬於哪些套件?
19、如何查詢某個(gè)套件安裝了哪些檔案?
20、如何安裝舊版的 ports?
21、如何更新 ports Mk?
22、如何解決安裝 ports 時(shí)出現(xiàn) sed -i 的錯(cuò)誤?
23、如何列出所有可以升級(jí)的 ports?
24、如何得知 ports system 對(duì)某個(gè) ports 所提供的編譯叁數(shù)?
25、如何手動(dòng)加入編譯 ports 的叁數(shù)?
26、如何指定 ports 的安裝路徑?
27、安裝 ports 出現(xiàn) FORCE_PKG_REGISTER 的錯(cuò)誤訊息
28、安裝 ports 出現(xiàn) Shared object libintl.so.X not found 的錯(cuò)誤訊息
29、如何安裝 packages?
30、如何強(qiáng)制安裝 packages?
31、如何查詢 packages 與其他 packages 之間的相依性?
32、如何遠(yuǎn)端安裝 packages?
33、如何更新 INDEX 對(duì)照表?
34、如何更新 INDEX HTML?
35、如何針對(duì)某些 ports 不做 CVSup?
36、如何使用 CVSup 同步 ports collections?
37、安裝 ports 出現(xiàn) port is outdated 的錯(cuò)誤訊息
39、安裝 ports 出現(xiàn) OpenSSL vulnerabilities 的錯(cuò)誤訊息
40、如何在 FreeBSD 上模擬 Linux 的環(huán)境?
41、如何在 FreeBSD 上安裝 Linux rpm?
42、安裝 ports 時(shí),原本應(yīng)該出現(xiàn)的清單選項(xiàng)不見了
43、如何檢查是否有安裝重覆的 ports/packages? `make deinstall' 與 `pkg_delete' 有什麼不同?
44、安裝 ports 出現(xiàn) local modification time does not match remote 的
錯(cuò)誤訊息
1、如何只抓取 tarball?
如果只希望抓取 tarball 下來(lái)的話,僅需下 make fetch 即可。
如果是要抓取單一的 port,以 editors/joe 為例的話,則:
代碼: |
cd /usr/ports/editors/joe/ make fetch |
預(yù)設(shè)會(huì)將 joe 的 tarball 下載至 /usr/ports/distfiles/ 目錄下。
如果是希望抓取安裝此 ports 所有須要的其他 ports 的 tarball,以
systuils/portupgrade 為例的話,則:
代碼: |
cd /usr/ports/systuils/portupgrade/ make fetch-recursive |
預(yù)設(shè)會(huì)將此 ports 的 tarball 與所有須要的其他 ports 的 tarball,下載至 /usr/ports/distfiles/ 目錄下。
如果是希望抓取全部所有 ports 的 tarball ,則:
代碼: |
cd /usr/ports/ make fetch |
則會(huì)所將全部所有 ports 的 tarball 下載至 /usr/ports/distfiles/ 目錄下。
如果是希望抓取全部 ftp 下所有 ports 的 tarball ,則:
代碼: |
cd /usr/ports/ftp/ make fetch |
則會(huì)所將全部 ftp 下所有 ports 的 tarball 下載至 /usr/ports/distfiles/
目錄下。
2、如何僅做到解開 tarball的步驟?
有時(shí)候習(xí)慣自己 patch/修正 原始碼的時(shí)候,很常用到這個(gè)功能。
以 editors/joe 為例的話,則:
代碼: |
cd /usr/ports/editors/joe/ make extract |
會(huì)將 tarball解開至 /usr/ports/editors/joe/work/ 目錄下。
3、如何僅做到解開 tarball 并補(bǔ)上官方提供的 patch?
此方法與 2 有一些類似,不同於是先補(bǔ)上官方提供的 patch ,再行 patch 自己
的修正。以 editors/joe 為例的話,則:
代碼: |
cd /usr/ports/editors/joe/ make patch |
會(huì)將 tarball解開至 /usr/ports/editors/joe/work/ 目錄下,并已經(jīng) patch 上
官方提供的 patch。
4、如何安裝一個(gè)新的 port?
如果系統(tǒng)上未安裝此軟體,則可以選擇安裝一個(gè)新的 port。
以 editors/joe 為例的話,則:
代碼: |
cd /usr/ports/editors/joe/ make install |
如此會(huì)在系統(tǒng)上安裝一個(gè)新的 joe 軟體。如果需要在安裝完成後,一并清除編輯
時(shí)期所留下來(lái)的暫存目錄,則可叁考 FAQ 8 的方法,一起使用,如:
代碼: |
cd /usr/ports/editors/joe/ #make clean |
如果想要一次清掉所有 ports 產(chǎn)生的暫存資料,則只要回到 ports 的根目錄執(zhí)
行即可:
代碼: |
cd /usr/ports/ #make clean |
5、如何安裝一個(gè)新的 port,并將打包(package)起來(lái)?
將安裝完成的軟體打包起來(lái),有許多便利性:包括在叢集系統(tǒng)中,可供其它機(jī)器
使用,或?qū)⑽磥?lái)此軟體出問(wèn)題可重新利用此 package 重新快速安裝。
以 editors/joe 為例的話,則:
代碼: |
cd /usr/ports/editors/joe/ #make package |
如此會(huì)在系統(tǒng)上安裝一個(gè)新的 joe 軟體,并將此軟體打包(package)起來(lái)。
package 預(yù)設(shè)會(huì)在 /usr/ports/editors/joe/ 目錄下,如果希望集中管理的話,
建議做如下的步驟:
代碼: |
mkdir -p /usr/ports/packages/All/ |
以後打包的 packages 都會(huì)存放在此目錄下,并且系統(tǒng)會(huì)自動(dòng)做分類,以方便管
理。如果需要在安裝完成後,一并清除編輯 時(shí)期所留下來(lái)的暫存目錄,則可叁
考 FAQ 8 的方法,一起使用,如:
代碼: |
cd /usr/ports/editors/joe/ make package clean |
6、如何打包一個(gè) port,并將其所有相依的 ports 也打包起來(lái)?
因?yàn)?FAQ 5 只有對(duì)最終的 port 才進(jìn)行打包,中間依賴的 ports 并沒(méi)有一起打
包,這會(huì)出現(xiàn)一個(gè)常遇到 的問(wèn)題,就是如果編輯一個(gè) port 需要依賴其它的
ports,那麼必須將其它 ports 也一起打包,否則安裝 packages 會(huì)有相 依賴其
它 ports 的 packages 的問(wèn)題。
以 sysutils/portupgrade 為例的話,則:
代碼: |
cd /usr/ports/sysutils/portupgrade/ make DEPENDS_TARGET=package package |
如此會(huì)在對(duì)所有 portupgrade 所相依賴的 ports 一并打包,也包括自己本身。
7、如何對(duì)一個(gè)已經(jīng)安裝的 port 打包?
如果安裝好一個(gè)套軟,事前并未打包,事後想打包的話,則:
以 editors/joe 為例的話
代碼: |
cd /var/db/pkg/ pkg_create -b joe-{版本號(hào)} |
會(huì)將已安裝的 port 打包起來(lái),放在 /var/db/pkg/ 目錄下。
8、如何清理 ports 編輯期間所產(chǎn)生的暫存資料?
在編輯 port 的時(shí)候,會(huì)有編輯期間所需要的工作目錄(work),因此通常安裝好
一個(gè)套件後,會(huì)清除此暫存目錄,以節(jié)省系 統(tǒng)磁碟空間。
以 editors/joe 為例的話,則:
代碼: |
cd /usr/ports/editors/joe/ make clean |
如果是希望清除所有 ports 的暫存目錄,則:
代碼: |
cd /usr/ports/ make clean |
如果是希望清除全部 ftp 下所有的暫存目錄,則:
代碼: |
cd /usr/ports/ftp/ make clean |
9、如何清理 ports 編輯期間所產(chǎn)生的暫存資料,以及其相對(duì)應(yīng)的 tarball?
在 FAQ 8 中,僅只是清除編輯期間所需要的工作目錄(work),并沒(méi)有將編譯
ports 時(shí)一并下載的 tarball 刪除(相對(duì)應(yīng)之 tarball 預(yù)設(shè)會(huì)存放
在 /usr/ports/distfiles/),如果欲把 tarball 一并刪除,
以 editors/joe 為例的話,則:
代碼: |
cd /usr/ports/editors/joe/ make distclean |
make distclean 的步驟包含了 make clean 的功能,也就是說(shuō)除了會(huì)刪除
tarball 外,還會(huì)一并M除編輯期間所需要的工作目錄。
如果是希望清除所有 ports 的暫存目錄,及 tarball ,則:
代碼: |
cd /usr/ports/ make distclean |
如果是希望清除全部 ftp 下所有的暫存目錄,及 tarball,則:
代碼: |
cd /usr/ports/ftp/ make distclean |
10、如何在安裝 ports 前查詢所需依賴/相關(guān)的套件?
在安裝 ports 前,可以查詢所需依賴/相關(guān)的套件。
以 mail/p5-Mail-SpamAssassin 為例的話,則:
代碼: |
cd /usr/ports/mail/p5-Mail-SpamAssassin/ make all-depends-list #顯示所有相關(guān)的套件 make pretty-print-build-depends-list #顯示編譯期間所需要的套件 make pretty-print-run-depends-list #顯示此套件要執(zhí)行時(shí)所需要的套件 |
11、如何移除已安裝的 ports?
以 editors/joe 為例的話,則:
代碼: |
cd /usr/ports/editors/joe/ make deinstall |
或是使用 pkg_delete
代碼: |
cd /var/db/pkg/ pkg_delete joe-{version} |
有時(shí)候套件之間的相依性會(huì)導(dǎo)致無(wú)法直接移除,如果要強(qiáng)制移除的話,則:
代碼: |
cd /var/db/pkg/ pkg_delete -f joe-{version} |
但很有可能會(huì)導(dǎo)致其它的套件執(zhí)行起來(lái)出現(xiàn)問(wèn)題。
至於二者的差別,請(qǐng)叁考FAQ 43
相關(guān)文章
Unix,BSD,Linux系統(tǒng)三者的區(qū)別小結(jié)
這篇文章主要介紹了Unix,BSD,Linux系統(tǒng)三者的區(qū)別小結(jié),需要的朋友可以參考下2023-05-03- 一些朋友問(wèn)小編FreeBSD如何添加硬盤?別擔(dān)心,今天小編就為大家分享FreeBSD添加硬盤的方法,希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧2017-04-06
- 今天小編為大家?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-06Unix文件系統(tǒng)和pwd命令實(shí)現(xiàn)詳解
今天小編要為大家?guī)?lái)的是Unix文件系統(tǒng)和pwd命令實(shí)現(xiàn)詳解,希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧2017-04-01- 今天小編將為大家?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- 今天小編要為大家?guī)?lái)的是grub2引導(dǎo)freebsd詳解!希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧2017-03-19
- 下面小編為大家?guī)?lái)的是FreeBSD10安裝內(nèi)核源代碼方法講解!希望能夠幫助到大家!有需要的朋友一起去看看吧2017-03-19
FreeBSD下如何使GraphicsMagick支持中文字體?
最近一些朋友在問(wèn)FreeBSD下如何使GraphicsMagick支持中文字體?今天小編為大家?guī)?lái)的是FreeBSD下使GraphicsMagick支持中文字體的方法!有需要的朋友一起去看看吧2017-03-15