FreeBSD portupgrade升级你的FreeBSD软件[zt]
生活随笔
收集整理的這篇文章主要介紹了
FreeBSD portupgrade升级你的FreeBSD软件[zt]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
FreeBSD portupgrade升級你的FreeBSD軟件
http://tech.techweb.com.cn/thread-186485-1-1.html
如果想如何能夠將FreeBSD已經安裝過的軟件進行升級,那么你可以用一下portupgrade軟件,有點像程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇!z#p1L6L$f,f s,s'S4k6o
apt-get upgrade呵呵
-U+Q+U-a,o?? 我僅僅需要做的就是:
(g8`;D%e(R!m.I1vTechWeb-技術社區?? 1.cvsup一下我的ports treeTechWeb-技術社區8u1V4l$X8C5d-J
?? 2.portupgrade -arRP"a8`"H7o0Q&h
3M$U;w7}7TTechWeb-技術社區以下內容不是我翻譯的,我是在網絡上找的。地址為:http://www.pc8080.com/3/115384.html
!y!f5h!I7r程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇它的參數有:"H#];O-j,T5T5]
pkgname_glob pkg_glob(1)
;Z,i Z&w#P#y0m,F-C;n k!T:R7r8c9s4@
?? -a 全部安裝的 packages*S(~&p0Y/m7m
%s8l7Q8U!F6H4KTechWeb-技術社區?? -A 每次 install 後要跑的指令)g*[2w'D*]0O(P5e1v&J
"[!R$I)j/[*c6d @;^tech.techweb.com.cn?? -b 把舊的 package 備份到 PKG_TMPDIR or TMPDIR (default /var/tmp)$b)A,{4J6B8U
&\4B,X"g P Z?? -B build 前要跑的指令 (如果 fail 的話,那這個 port/package 會被略過)
"E:J3I:F:r5p/o#].v5rtech.techweb.com.cn
'H'M6k4K'I+w 要更新 gnome* 前先 cvs updatetech.techweb.com.cn.M'R0b5l:P8{9W;^8]
portupgrade -B 'cvs update' 'gnome*''\4~#b&X.S:`
6C2Z(D(L3V*z"\#[/D+^;V!v程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇 不知道
'y%b8D'H-l(\8B$Stech.techweb.com.cn portupgrade -B 'ports_glob -M $(pwd) | (cd
+b2V!p9g/}'w%e4D g'U ../..; xargs cvs up)' slave/port
%}/r3O9p:Z!e8q
(H:a8Z$I7M,S 通通都更新,除了 interactive 的 ports
m5\ c y8@程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇 portupgrade -aB 'test ! `make -V IS_INTERACTIVE`'
*C2~!O1o/D-Mtech.techweb.com.cn程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇'~8}#g3n$B*j J.e
?? -c 在 build 之前 clean (default)程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇6z%o.^1P U#H-M
7h%}-{8P$f#E:X?? -C 在 install 之後 clean (default)
"h7t-M4v/t'B'[tech.techweb.com.cn%k$w)P6f7r"Y
?? -D 在 fetch/build 之前 distclean程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇7z&C&D-i3z4f4N'u$G7Q
'P8V5h"{%?3Y%T!k5c2u?? -f 強迫更新一個要被 downgrade 或相同版本或在 pkgtools.conf 標記為 HOLD_PKGS)_1u2P1v _!},S$f.M!s
的 package
8e$N&w4_0t6Y'}$\tech.techweb.com.cn
/P:v(B `0s;E3LTechWeb-技術社區?? -F 只會把 distfiles 抓下來(如果加 -P 則是抓 packages)
,F#\2k._,K;?8O3GTechWeb-技術社區&E"}.X1x2w$v+F$F a:k
?? -g 強迫更新 require 的 package 更新失敗的 package
-i6N#k.n1M)l(]TechWeb-技術社區tech.techweb.com.cn1U;C4}%n7E%H4J5r7V,z
?? -i interactive 就是會問你要不要的 (implies -v)tech.techweb.com.cn7~3y1D0\(T1{ P3E4w
%Q9L/t-W'b9p8C+@1S8W?? -I 把結果丟到 FILE 去1G1P1w4K3C
9J'H(r'Q#t*[$h4X%Y'X
?? -L 把每一個 port build & install 結果丟到 PREFIX 去
%T+p!|&f%?/v,X%K程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇 存成 <PREFIX><category>::<portname>程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇$i'B O p"I)w e
7i"I'd N/a:{8b;I-K
?? -m 要 append 給 make(1) 的參數
%X L/|2d*c0J9J
0P$E!A/[9A:x*U/J'l?? -M 要 prepend 給 make(1) 的參數6L7l;S+C9M;r
9I8T4u7c6a9}$H?? -n 看看會干些什麼事情 (implies -v, negates -i, -y)
's.i9e.q+U&R"hTechWeb-技術社區:~,d/A*J*w&J {8u
?? -N 安裝新的 port/package 而且會先更新所有 require 的 packages;h*l*W"Y(J6b/e+r
可以指定 portorigin glob程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇0P h+B#X&b#o.u
0e%w(c+{-S4jtech.techweb.com.cn?? -o 指定 ORIGIN)e'l/N"D!j+p9S
.@7m-t:E.]2r*M;e4[
?? -O 別做完整的 denendency check(如果跑之前有 pkgdb -F 那可以放心的用)3a.H*c.}%K7? L-w'J%B q
"Z.O"D y2h;o,P!T!f8k!M?? -p 在 install/upgrade 後生出 package,如果有指定到 dependent package T(K3B$I'g#w$R
的話(like -r),那些也會生 packagetech.techweb.com.cn!W+~'m"O']._%V2F
程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇*h(`7@-q)O8r0e6G"T#~
?? -P 用 package,會去掃 PKG_PATH,找不到就 pkg_fetch 再不然就用 ports
"f4w/k${8^3R5m8i5~TechWeb-技術社區(~'Y+g-D9b-Y"]3M,a:L1Q
?? -PP 堅持只用 package,不用 ports#]#L"^'Q)B:y0C0j:P
-C-a*M*S+N
?? -q 不要讀 $PREFIX/etc/pkgtools.conf
"[!M/y ^2L5]!x$b)e2|6otech.techweb.com.cn
4L:H1G2v&t+I'I:B?? -r 把 depends on given ports 的 packages 也一起更新
1O#]%?.V x8J"r0M%stech.techweb.com.cn 比如說 -r png-* 的話,會把需要 png 的 packages 一起更新0^#\*y1n+B K2n
.~5C)c `5p+B
?? -R 把 given ports 需要的 packages 也一起更新
;K't;d;V&Q/^(s 比如說 -R kde3 的話,會把其他 kde3-* 的一起更新tech.techweb.com.cn#m.X&N;p.E)s
TechWeb-技術社區,q6l:R4u6E.C9D0I
?? -s 在需要 root 權限的時候執行 sudo
/x9]&~0I)~-Q-l*d-\5^ E3R:g(T3t$c)o-N$~
?? -S 取代 sudo(8) 的指令,例如 su root -c %s ''8G$?'B&u2Y-N:_/_
5R(T*l.b/}+`3n"i)i9} @
?? -u 不要保留舊的 shared libraries2E2Z/H$p9e(O:f3k(n#{7p8t-x3A
程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇&T1p$H-[%G%G!M6g.F;d Q
?? -v verbose output!s6u*`5k,a1y-~
)t%l"a6E2~2c.e2z3qTechWeb-技術社區?? -w 不要在 build 之前 clean
,Y;z:v3m0RTechWeb-技術社區TechWeb-技術社區3i6y*W+G!P0p1K-c-A-l
?? -W 不要在 install 之後 clean
!A:q$@,t1T8ZTechWeb-技術社區TechWeb-技術社區)N;O(s3i)?9w9g#P*m
?? -x 排除 match GLOB 的 packages程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇&t*n"g*V%Q
例如 portupgrade -rx XFree86 XFree86 會更新所有 depends on XFree86 的
"\%f:A;T#N8x/Q7B9S/P$k:y packages,卻不更新 XFree86 本身
&B'j6H:~7|5n程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇
8H"b1^-m*C1f F-F8V?? -y 所有問題通通回答 yes (implies -v, negates -n)
Step1.安裝(主要用於post已安裝的軟體更新上)
#cd /usr/ports/sysutils/portupgrade ?? //切換至安裝路徑
#make install clean ?? ?? ?? ?? ?? ?? ??? //安裝並清除安裝過程中不必要的檔案
Step2.升級注意事項
#pkg_version -v | grep '<' ?? ?? ?? ?? //列出目前的套件及可更新的版本
要用portupgrade時最好先把舊的套件備份起來,以便新的版本有問題時可再解回
#pkg_create -b?? 要備的套件(ex.openwebmail 2.40) ?? //備份所指定之套件會產生再目前的目錄
#pkg_add -v 要還原的套件(ex.openwebmail 2.40.tgz) //升級後無法使用把升級後的版本移除再利用此行還原原本的套件
Step3.升級套件
#portupgrade 要升級的套件名稱(ex.openwebmail 2.40)
補充
#portsdb -Uu ?? //更新完port tree 後執行此指令來及時更新您的 port INDEX 資料庫(確保 INDEX 跟 ports tree 同步)
#pkgdb -F ?? ?? //修復程式間的關連性即更新 /var/db/pkg/pkgdb.db(升級前、後都要執行)
#portsclean -CDLP //清除不需要的distfiles、working、舊的 shared libraries
http://www.cnkeyboard.com/1/viewspace-685 #Freebsd 分享到: ?著作權歸作者所有:來自51CTO博客作者3444542的原創作品,如需轉載,請注明出處,否則將追究法律責任
http://tech.techweb.com.cn/thread-186485-1-1.html
如果想如何能夠將FreeBSD已經安裝過的軟件進行升級,那么你可以用一下portupgrade軟件,有點像程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇!z#p1L6L$f,f s,s'S4k6o
apt-get upgrade呵呵
-U+Q+U-a,o?? 我僅僅需要做的就是:
(g8`;D%e(R!m.I1vTechWeb-技術社區?? 1.cvsup一下我的ports treeTechWeb-技術社區8u1V4l$X8C5d-J
?? 2.portupgrade -arRP"a8`"H7o0Q&h
3M$U;w7}7TTechWeb-技術社區以下內容不是我翻譯的,我是在網絡上找的。地址為:http://www.pc8080.com/3/115384.html
!y!f5h!I7r程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇它的參數有:"H#];O-j,T5T5]
pkgname_glob pkg_glob(1)
;Z,i Z&w#P#y0m,F-C;n k!T:R7r8c9s4@
?? -a 全部安裝的 packages*S(~&p0Y/m7m
%s8l7Q8U!F6H4KTechWeb-技術社區?? -A 每次 install 後要跑的指令)g*[2w'D*]0O(P5e1v&J
"[!R$I)j/[*c6d @;^tech.techweb.com.cn?? -b 把舊的 package 備份到 PKG_TMPDIR or TMPDIR (default /var/tmp)$b)A,{4J6B8U
&\4B,X"g P Z?? -B build 前要跑的指令 (如果 fail 的話,那這個 port/package 會被略過)
"E:J3I:F:r5p/o#].v5rtech.techweb.com.cn
'H'M6k4K'I+w 要更新 gnome* 前先 cvs updatetech.techweb.com.cn.M'R0b5l:P8{9W;^8]
portupgrade -B 'cvs update' 'gnome*''\4~#b&X.S:`
6C2Z(D(L3V*z"\#[/D+^;V!v程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇 不知道
'y%b8D'H-l(\8B$Stech.techweb.com.cn portupgrade -B 'ports_glob -M $(pwd) | (cd
+b2V!p9g/}'w%e4D g'U ../..; xargs cvs up)' slave/port
%}/r3O9p:Z!e8q
(H:a8Z$I7M,S 通通都更新,除了 interactive 的 ports
m5\ c y8@程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇 portupgrade -aB 'test ! `make -V IS_INTERACTIVE`'
*C2~!O1o/D-Mtech.techweb.com.cn程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇'~8}#g3n$B*j J.e
?? -c 在 build 之前 clean (default)程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇6z%o.^1P U#H-M
7h%}-{8P$f#E:X?? -C 在 install 之後 clean (default)
"h7t-M4v/t'B'[tech.techweb.com.cn%k$w)P6f7r"Y
?? -D 在 fetch/build 之前 distclean程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇7z&C&D-i3z4f4N'u$G7Q
'P8V5h"{%?3Y%T!k5c2u?? -f 強迫更新一個要被 downgrade 或相同版本或在 pkgtools.conf 標記為 HOLD_PKGS)_1u2P1v _!},S$f.M!s
的 package
8e$N&w4_0t6Y'}$\tech.techweb.com.cn
/P:v(B `0s;E3LTechWeb-技術社區?? -F 只會把 distfiles 抓下來(如果加 -P 則是抓 packages)
,F#\2k._,K;?8O3GTechWeb-技術社區&E"}.X1x2w$v+F$F a:k
?? -g 強迫更新 require 的 package 更新失敗的 package
-i6N#k.n1M)l(]TechWeb-技術社區tech.techweb.com.cn1U;C4}%n7E%H4J5r7V,z
?? -i interactive 就是會問你要不要的 (implies -v)tech.techweb.com.cn7~3y1D0\(T1{ P3E4w
%Q9L/t-W'b9p8C+@1S8W?? -I 把結果丟到 FILE 去1G1P1w4K3C
9J'H(r'Q#t*[$h4X%Y'X
?? -L 把每一個 port build & install 結果丟到 PREFIX 去
%T+p!|&f%?/v,X%K程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇 存成 <PREFIX><category>::<portname>程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇$i'B O p"I)w e
7i"I'd N/a:{8b;I-K
?? -m 要 append 給 make(1) 的參數
%X L/|2d*c0J9J
0P$E!A/[9A:x*U/J'l?? -M 要 prepend 給 make(1) 的參數6L7l;S+C9M;r
9I8T4u7c6a9}$H?? -n 看看會干些什麼事情 (implies -v, negates -i, -y)
's.i9e.q+U&R"hTechWeb-技術社區:~,d/A*J*w&J {8u
?? -N 安裝新的 port/package 而且會先更新所有 require 的 packages;h*l*W"Y(J6b/e+r
可以指定 portorigin glob程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇0P h+B#X&b#o.u
0e%w(c+{-S4jtech.techweb.com.cn?? -o 指定 ORIGIN)e'l/N"D!j+p9S
.@7m-t:E.]2r*M;e4[
?? -O 別做完整的 denendency check(如果跑之前有 pkgdb -F 那可以放心的用)3a.H*c.}%K7? L-w'J%B q
"Z.O"D y2h;o,P!T!f8k!M?? -p 在 install/upgrade 後生出 package,如果有指定到 dependent package T(K3B$I'g#w$R
的話(like -r),那些也會生 packagetech.techweb.com.cn!W+~'m"O']._%V2F
程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇*h(`7@-q)O8r0e6G"T#~
?? -P 用 package,會去掃 PKG_PATH,找不到就 pkg_fetch 再不然就用 ports
"f4w/k${8^3R5m8i5~TechWeb-技術社區(~'Y+g-D9b-Y"]3M,a:L1Q
?? -PP 堅持只用 package,不用 ports#]#L"^'Q)B:y0C0j:P
-C-a*M*S+N
?? -q 不要讀 $PREFIX/etc/pkgtools.conf
"[!M/y ^2L5]!x$b)e2|6otech.techweb.com.cn
4L:H1G2v&t+I'I:B?? -r 把 depends on given ports 的 packages 也一起更新
1O#]%?.V x8J"r0M%stech.techweb.com.cn 比如說 -r png-* 的話,會把需要 png 的 packages 一起更新0^#\*y1n+B K2n
.~5C)c `5p+B
?? -R 把 given ports 需要的 packages 也一起更新
;K't;d;V&Q/^(s 比如說 -R kde3 的話,會把其他 kde3-* 的一起更新tech.techweb.com.cn#m.X&N;p.E)s
TechWeb-技術社區,q6l:R4u6E.C9D0I
?? -s 在需要 root 權限的時候執行 sudo
/x9]&~0I)~-Q-l*d-\5^ E3R:g(T3t$c)o-N$~
?? -S 取代 sudo(8) 的指令,例如 su root -c %s ''8G$?'B&u2Y-N:_/_
5R(T*l.b/}+`3n"i)i9} @
?? -u 不要保留舊的 shared libraries2E2Z/H$p9e(O:f3k(n#{7p8t-x3A
程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇&T1p$H-[%G%G!M6g.F;d Q
?? -v verbose output!s6u*`5k,a1y-~
)t%l"a6E2~2c.e2z3qTechWeb-技術社區?? -w 不要在 build 之前 clean
,Y;z:v3m0RTechWeb-技術社區TechWeb-技術社區3i6y*W+G!P0p1K-c-A-l
?? -W 不要在 install 之後 clean
!A:q$@,t1T8ZTechWeb-技術社區TechWeb-技術社區)N;O(s3i)?9w9g#P*m
?? -x 排除 match GLOB 的 packages程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇&t*n"g*V%Q
例如 portupgrade -rx XFree86 XFree86 會更新所有 depends on XFree86 的
"\%f:A;T#N8x/Q7B9S/P$k:y packages,卻不更新 XFree86 本身
&B'j6H:~7|5n程序開發,操作系統,服務器,×××,Linux,Unix,BSD,PHP,Apach,asp,下載,源碼,***,安全,技術社區,技術論壇
8H"b1^-m*C1f F-F8V?? -y 所有問題通通回答 yes (implies -v, negates -n)
Step1.安裝(主要用於post已安裝的軟體更新上)
#cd /usr/ports/sysutils/portupgrade ?? //切換至安裝路徑
#make install clean ?? ?? ?? ?? ?? ?? ??? //安裝並清除安裝過程中不必要的檔案
Step2.升級注意事項
#pkg_version -v | grep '<' ?? ?? ?? ?? //列出目前的套件及可更新的版本
要用portupgrade時最好先把舊的套件備份起來,以便新的版本有問題時可再解回
#pkg_create -b?? 要備的套件(ex.openwebmail 2.40) ?? //備份所指定之套件會產生再目前的目錄
#pkg_add -v 要還原的套件(ex.openwebmail 2.40.tgz) //升級後無法使用把升級後的版本移除再利用此行還原原本的套件
Step3.升級套件
#portupgrade 要升級的套件名稱(ex.openwebmail 2.40)
補充
#portsdb -Uu ?? //更新完port tree 後執行此指令來及時更新您的 port INDEX 資料庫(確保 INDEX 跟 ports tree 同步)
#pkgdb -F ?? ?? //修復程式間的關連性即更新 /var/db/pkg/pkgdb.db(升級前、後都要執行)
#portsclean -CDLP //清除不需要的distfiles、working、舊的 shared libraries
http://www.cnkeyboard.com/1/viewspace-685 #Freebsd 分享到: ?著作權歸作者所有:來自51CTO博客作者3444542的原創作品,如需轉載,請注明出處,否則將追究法律責任
0
微博 QQ 微信收藏
上一篇:在Nokia S60 Platf... 下一篇:FreeBSD和Linux共享s... 34445421493篇文章,91W+人氣,0粉絲
Ctrl+Enter?發布
發布
取消
轉載于:https://blog.51cto.com/axlrose/1289025
總結
以上是生活随笔為你收集整理的FreeBSD portupgrade升级你的FreeBSD软件[zt]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开篇语 2008.8.11
- 下一篇: 手工修复损坏的域树