提供經由port或是packages來升級/安裝新的軟體[取自於OHaHa's學習心得]
由於FreeBSD並沒有像Debian,有apt server可以做upgrade的整體軟體升級
所以if您跟zgod一樣是先以freebsd早期4.8、4.9版本安裝後,再自行更新source升級系統的話
這樣可能在很多套件的安裝時,版本相依的問題就會產生
此時就非常需要…portupgrade這套軟體了

[FreeBSD4]安裝

#cd /usr/ports/sysutils/portupgrade
#make install
#make clean


[FreeBSD5/6]安裝

#cd  /usr/ports/ports-mgmt/portupgrade
#make install
#make clean


裝完記得重新login哦!

在使用上非常簡單
#portupgrade 欲升級的軟體名稱
ps:都記得先做完port tree更新哦!

例如:我想在安裝svn時說我有一個叫libtool的軟體太舊了,所以我就對libtool做upgrade的動作
#portupgrade libtool


Making install in tests
install-info --quiet /usr/local/info/libtool.info /usr/local/info/dir
===> Registering installation for libtool-1.5.22_2
===> Cleaning for libtool-1.5.22_2
---> Cleaning out obsolete shared libraries
[Updating the pkgdb in /var/db/pkg ... - 22 packages found (-0 +1) . done]
** Package 'libtool' has been removed from ports tree.
** Port directory not found: devel/libtool
** Listing the failed packages (*:skipped / !:failed)
! (libtool-1.3.4_4) (port directory error)
---> Packages processed: 1 done、0 ignored、0 skipped and 1 failed
#


它會自行尋找新的版本並比較,然後自行安裝
完成就會出現這類的訊息。
用pkg_info來查看:

#pkg_info | grep libtool

libtool-1.3.4_4   Generic shared library support script
libtool-1.5.22_2 Generic shared library support script

1.3.4是舊版的1.5.22是新的



。。接下來你可以用。。
# pkgdb -F
自動整理軟體之間的相依性,將不用的舊的版本移除
pkgdb -F 來掃瞄已裝的 ports 資料庫
portupgrade -ai    升級系統上所有已裝的過舊 ports。 -i 則在過程當中,會要求確認相關動作是否符合所需。

# portsclean -CD
可以自動清除之前用port安裝過的暫存檔

# portsclean -f
在 ports 裡, 進到要重新設定的目錄,用 make config 修改後,  portupgrade -f 強制自我升級


太常忘記了 快[筆記]
http://www.freebsd.org/doc/zh_TW/books/handbook/ports-using.html
port make config portupgarde 升級、安裝、更新 用法

 

 


以下再po上,之前在網路上找到的一些整理常用指令
出處

安裝軟體
Gentoo: emerge
Debian: apt-get install
FreeBSD: portinstall


移除軟體
Gentoo: emerge unmerge
Debian: apt-get remove
FreeBSD: pkg_deinstall


升級單一軟體
Gentoo: emerge -u <package>
Debian: apt-get install <package>
FreeBSD: portupgrade <package>


察看升級全系統會動到哪些套件:
Gentoo: emerge -puDv world
Debian: apt-get -u dist-upgrade
FreeBSD: portupgrade -arnv


升級全系統
Gentoo: emerge -u --deep world
Debian: apt-get dist-upgrade
FreeBSD: make world ; portupgrade -ar


查詢系統裝了哪些軟體
Gentoo: emerge -pe world 或 qpkg -I -v
Debian: dpkg --get-selections
FreeBSD: pkg_info


查詢某檔案屬於哪個軟體
Gentoo: qpkg -f
(need gentoolkit)
Debian: dpkg -S
FreeBSD: pkg_info -W


查詢某個套件安裝了什麼檔案
Gentoo: qpkg -l <package>
Debian: dpkg -L <package>
FreeBSD: pkg_info -L <package>


查詢有沒有裝這個關鍵字的套件
Gentoo: qpkg -I | grep (qpkg再加上 -v 看版本號碼)
Debian: dpkg -qa | grep
FreeBSD: pkg_info | grep


找哪些 pkg "簡介" 裡含有你要找的關鍵字:
Gentoo: emerge -S <關鍵字>
輸出方式和前者一樣, 關鍵字都可以用正規表示式
Debian: apt-cache search
FreeBSD: make search key=


不管相依性強制移除某套件
Gentoo: emerge -C
FreeBSD: pkg_delete -f



全系統重新編譯
Gentoo: emerge -e world
FreeBSD: make world ; portupgrade -arf

========
補充:
qpkg -f
ps: emerge gentoolkit first.

--
gentoo :

查詢某個套件安裝了什麼檔案:
qpkg -l

查詢有沒有裝這個關鍵字的套件:
qpkg -I (再加上 -v 看版本號碼)

不管相依性強制移除某套件:
emerge -C

仔細看一下 man emerge
要找一個 pkg 的 "名稱":
emerge -s <關鍵字>
輸出會有這個 pkg 的簡介

找哪些 pkg "簡介" 裡含有你要找的關鍵字:
emerge -S <關鍵字>
輸出方式和前者一樣

更厲害的是上面的關鍵字都可以用正規表示式!!

--
emerge -f (fetchonly)
好處在於當你emerge 兩個package以上的時候,可以先把source給抓回來,不過需要再emerge

emerge -p (pretend)
看要裝些什麼東西,

小弟認為這兩個指令對撥接使用者很重要,尤其 -f .一來可以大略知道下載時間,二來可以隨時中斷,然後在續傳(感謝偉大的wget)
--

portupgrade的詳細說明可參閱OHaHa's 學習心得

    全站熱搜

    zgod 發表在 痞客邦 留言(1) 人氣()