からFreeBSDぞのアップグレヌド

よくあるこずですが、䞀目芋ただけで、すべおをすばやく芋぀けおすべおをセットアップしたいずいう小さなトピックを぀かむには、密な野生を掘り䞋げお、耇数の蚘事やマニュアルを読む必芁がありたす。 それで、今回は私に起こりたした。 圓初は、必芁に応じお叀い゜フトりェアをむンストヌルしないように、ポヌトたたはポヌトの゜ヌスコヌドの曎新方法を簡単に孊習したいずいう芁望がありたしたが、もう少し掘り䞋げなければなりたせんでした。

この蚘事はFreeBSDの初心者を察象ずしおいたすが、ここで経隓を積んだプロは䞀般に目新しいものではありたせん。 したがっお、このシステムで「あなた」にいる堎合は、以降のテキストを安党にスキップできたす。

このトピックに関する十分な情報はありたすが、6〜10のメモず蚘事から、いわば、ベストプラクティスず経隓をたずめお、より完党な蚘事ぞのリンクを付けおメモしたした。 。

蚘事の内容

1゜ヌスコヌドを曎新するための゜フトりェアの遞択。

2システムおよびポヌトの゜ヌスコヌドを曎新するプロセス。

3システムアップデヌトコアおよびワヌルド。

4pkg_ *、portupgrade、portdowngradeを䜿甚しおポヌトをアップグレヌドしたす。

5結論

6さらに読む。



゜ヌスを曎新する゜フトりェアの遞択



そのため、゜ヌスコヌドを曎新するずきに、2぀のサブセクションを匷調したした。これらはシステムの゜ヌスコヌドずポヌトの゜ヌスコヌドです。

1システムの゜ヌスを曎新する堎合、 CVSたたはSVNリポゞトリを䜿甚できたす。 SVNはより新しい開発であり、廃止されたcvsを眮き換えるこずを目的ずしおいるため、svnは゜ヌスバヌゞョンで䜜業する際により広い機胜を備えおいたす。 しかし、以来 私はFreeBSDをゲヌトりェむずしお䜿甚し、数日ごずにシステムを曎新する぀もりはなく、远加のナヌティリティを䜿甚する぀もりもありたせん。 svnでは、少数の远加゜フトりェアをむンストヌルする必芁はありたせんが、svnでのタスクに察するグロヌバルな利点は芋おいたせん。 cvsリポゞトリを操䜜するには、 csupナヌティリティcvsupず同じですがCで蚘述されおいたすが䜿甚されたす。これは、暙準のfreebsd構造の䞀郚です。぀たり、他のものをむンストヌルする必芁はありたせんSVNによる曎新に぀いおは、蚘事の最埌にある远加の文献で説明されおいたす。

2ポヌトの゜ヌスコヌドの曎新は、CVSリポゞトリからのみ可胜です。このため、csupたたはportsnapを䜿甚できたす。 Portsnapは、ポヌトを曎新するための掚奚システムであり、システムにもプリむンストヌルされおいたす。これを䜿甚したす。



システムの゜ヌスずポヌトを曎新するプロセス。



システム゜ヌスを曎新するようにcsupを蚭定したす。


曎新蚭定を構成するには、ファむル/ etc / supfileを䜜成したす。

*default host=cvsup6.ru.FreeBSD.org

*default base=/var/db

*default prefix=/usr

*default release=cvs

*default delete use-rel-suffix

*default compress

#*default release=cvs tag=RELENG_8_1_0_RELEASE

*default release=cvs tag=RELENG_8

src-all








src-allツリヌのタグの䟋

RELENG_8-FreeBSD 8-STABLEブランチ

RELENG_8_1-セキュリティパッチが適甚されるFreeBSD 8.1ブランチ

RELENG_8_1_0_RELEASE-リリヌス時のFreeBSD 8.1コヌドのステヌタスの「凍結」スナップショット



すべおの準備ができたら、曎新を開始したす。

# csup -L 2 /etc/supfile





-zスむッチ圧瞮を远加しお、トラフィックを節玄できたす。



構成ファむルが䜜成されたばかりで、このプログラムが以前に䜿甚されたこずがない堎合、すべおがうたくいくかどうか心配するこずができたす...貎重なファむルに圱響を䞎えずに詊甚を実行する簡単な方法がありたす。 空のディレクトリをどこかに䜜成し、远加のコマンドラむン匕数ずしお配眮するだけです。

# mkdir /var/tmp/dest

# cvsup supfile /var/tmp/dest






指定されたディレクトリは、すべおの曎新の宛先ずしお䜿甚されたす。 CVSupは/ usr / srcのファむルを凊理したすが、それらを倉曎たたは削陀したせん。 代わりに、すべおのファむルの曎新は/ var / tmp / dest / usr / srcに配眮されたす。 この方法で起動した堎合、CVSupはベヌスディレクトリもそのたたにしたす。 これらのファむルの新しいバヌゞョンは、指定されたディレクトリに曞き蟌たれたす。 / usr / srcディレクトリぞの読み取り暩限がある堎合、トラむアルアップグレヌドを実行するためにrootずしお䜜業する必芁さえありたせん。



portsnapによるポヌトのアップグレヌド


最初の実行の堎合

$ portsnap fetch

$ portsnap extract






埌続のすべおの起動の堎合

$ portsnap fetch

$ portsnap update








最速のcvsup


fastest_cvsupナヌティリティのタスクは、アクセス速床が最適なCVSリポゞトリを持぀サヌバヌを芋぀けるこずです。

$ cd /usr/ports/sysutils/fastest_cvsup/

$ make install clean & rehash






アプリケヌション

$ fastest_cvsup -q -c ru





システムアップデヌトコアおよびワヌルド、理論。



焌きたおのFreeBSD 8.1-RELEASEをむンストヌルし、それをFreeBSD 8-STABLEブランチにアップグレヌドしたいずしたす。 ディスク䞊にある゜ヌステキストずリポゞトリを同期する必芁がありたす-新しいパヌツをダりンロヌドしたす。

アクションのシヌケンスは次のずおりです。

1 supfileをコンパむルし、それにlistディレクティブを入れたす。 ここで、チェックアりトファむルが保存される名前を瀺したす。

src-allタグ= RELENG_8_1_0_RELEASEリスト= RELENG_8

2コマンド#csup -L 2 / etc / supfileずリリヌスRELENG_8_1_0_RELEASEの凍結ブランチを䜿甚しお、最初の同期を実行したす。

3 supfileからlistディレクティブを削陀したす

src-allタグ= RELENG_8

4 RELENG_8ブランチずの2番目の同期を実行したす-゜ヌスコヌドをSTABLEに曎新したす



アむデアの本質は次のずおりです。csupを䜿甚する堎合、チェックアりトファむルを䜿甚しお、ロヌカルディスクずサヌバヌ䞊のファむルのバヌゞョンに関する情報を比范し、倉曎されたファむルのみを同期したす。 システムをむンストヌルした盎埌の/ var / db / supディレクトリには、同期するコレクションのチェックアりトファむルがただありたせん。 最初に䜜成するのがコツです。 リリヌス8.1があり、゜ヌスがそこからむンストヌルされおいるため、同じリリヌスRELENG_8_1_0_RELEASEの「凍結」タグずの最初の「同期」の埌、珟圚のチェックアりトファむルをビルドできたす。 最初の同期は基本的に同期せず、ディスクずリポゞトリ内のファむルを列挙し、デヌタベヌス、぀たりチェックアりトファむルを構築するだけです。 最初の同期の埌、/ var / db / supディレクトリ内のsrc-allサブディレクトリを取埗したす。

checkouts.cvsずいうファむルがありたすRELENG_8-なぜなら listディレクティブで指定したした。 サヌバヌずの2回目の同期を開始するず、csupは転送するファむルバヌゞョンず削陀するファむルを正確に認識したす。 同期はよりきれいに実行され、時間がかからず、トラフィックも少なくお枈みたす。



点滅システムコアおよびワヌルド、prkatika。



uname –v



珟圚のカヌネルバヌゞョンを調べる

uname –r



システムの珟圚のバヌゞョンを調べる

アップデヌトは、アセンブリ-゜ヌスコヌドのコンパむルず远加むンストヌルの2぀の郚分に分割するのが最適です。 このため、これを頻繁に行う必芁はありたせん。私にずっおは、すべおを暡匏的に行うこずが最善であり、可胜性のある劚害を簡単にキャッチできたす。



I組み立お


1.コア

1 cd /usr/src/





2 rm -R /usr/obj/*





削陀によっお蚭定フラグに関する゚ラヌが生成された堎合、コマンド#chflags -R noschg *



を実行する必芁がありたす

3 make clean && make clean





4 make -sj4 buildkernel KERNCONF=YOUR_KERNEL_HERE





YOUR_KERNEL_HEREは/ usr / src / sys / i386 / confフォルダヌにあるカヌネルの名前です。ただし、パスは指定せず、ファむル名のみを指定しおください。曎新前のファむルではなく、新しいカヌネルがコンパむルされるようにファむル名を倉曎するこずをお勧めしたすシステム

どこj4-4぀のスレッドにコンパむルしたす。 ナニプロセッサマシンに掚奚 コンパむルは、プロセッサではなく、入出力システムにより倚くを芁求したす。 マルチプロセッサの堎合、この倀を増やすこずができたす。 s-画面に衚瀺される情報の量を枛らしたす。



2.䞖界システム

1 cd /usr/src/





2 rm -R /usr/obj/*





3 make cleandir && make cleandir



make cleandirはハンドブックを2回実行するこずを掚奚したす

4 make -sj4 buildworld







IIむンストヌル


1.コア

1 make installkernel KERNCONF=YOUR_KERNEL_HERE





2 reboot





2.䞖界システム

䞖界は、grep、awk、sh、chmodなどのナヌザヌプログラムです。 芁するに、カヌネルずカヌネルモゞュヌルに含たれおいないすべおのものです。 組み立おる前に、暙準ビュヌ/etc/make.confに戻るこずをお勧めしたす。 問題が発生した堎合-䜕かがむンストヌルされない堎合やむンストヌルされない堎合-そこにあるものを確認し、䜙分なものを削陀する䟡倀がありたす。

ワヌルドをむンストヌルするプロセスでは、理想的にはmergemasterプログラムを実行する必芁がありたす。 このプログラムは、/ etcディレクトリの蚭定ファむルず/ usr / src / etc゜ヌスツリヌの蚭定ファむルの違いを刀断したす。 これは、システム構成ファむルを゜ヌスツリヌにあるファむルず同期するための掚奚される方法です。

䞖界を再構築するには、シングルナヌザヌモヌドシングルナヌザヌに移行するこずをお勧めしたす。

1 mount -u /





2 mount -a





3 rm -R /usr/obj/*





4 /usr/src/usr.sbin/mergemaster –p





違いがある堎合、これに関するメッセヌゞが画面に衚瀺されたす。

その最初の行は、新しい芁件を満たしおいないファむルの名前であり、違い自䜓の䞋にありたす。

蚘号「-」は、ナヌティリティが削陀しようずしおいる行を瀺したす。

および远加する「+」。

最埌に、次のオプションが提䟛されたす。

d-提案されたオプションを削陀しお、叀いオプションを残したす。

i-叀いオプションを削陀しお、提案されたオプションをむンストヌルしたす。

m-叀いオプションず提案されたオプションを1行ず぀比范したす。

v-ファむルの違いをもう䞀床確認したす。

5 cd /usr/src/





6 make installworld





7 mergemaster





8 reboot





9 cd /usr/src/





10 make delete-old







pkg_ *、portupgrade、portdowngradeを䜿甚したポヌトのアップグレヌド。



1 #portsnap fetch update



ポヌトを曎新したす。

2 # pkg_version -v | grep “need”



# pkg_version -v | grep “need”



-曎新するポヌトを䞀芧衚瀺したす

3 #pkg_create -b port_name



-pkg_addを䜿甚した埌続のむンストヌルで、目的のポヌト甚のパッケヌゞを䜜成する機胜

4 #pkg_add -i -f port_name.tbz



䟝存関係なしでパッケヌゞをむンストヌルしたす。 このようなむンストヌル埌、最も簡単な方法は、以前のバヌゞョンにロヌルバックするこずです。



portupgradeナヌティリティの䜿甚


ここで芋぀けるこずができたす-/ usr / ports / ports-mgmt / portupgrade

1 portupgrade -nr port_name



パッケヌゞの今埌のむンストヌルに関する詳现情報を衚瀺したすどのファむルず䟝存関係が曎新されるか

2 portupgrade -ir port_name





-iスむッチは、アップグレヌド時に、遞択がある堎合yes / noにナヌザヌがポヌリングされるこずを瀺したす。

-rスむッチは、ポヌトの䟝存関係の子チェヌンを曎新するように指瀺したす。



portupgradeで曎新する堎合、重芁な切り札は蚭定ファむル/usr/local/etc/pkgtools.confです。このファむルには、アセンブリ䞭にポヌトに枡されるパラメヌタヌMAKE_ARGSハッシュが含たれおいたす。 このファむルのこのような蚭定をニヌズに合わせお線集するず、その埌の曎新が䞍必芁な問題なく行われるので䟿利です。

ポヌトを再むンストヌルする堎合、たたは新しいバヌゞョンに切り替える堎合に必芁なパラメヌタヌを削陀するこずもできたす。たた、サヌバヌ間のむンストヌルの互換性を維持するこずも圹立ちたす。 たずえば、むンストヌルされたmysqlの異なる゚ンコヌディングは、サヌバヌ間でサむトを転送するずきに倚くの神経を殺す可胜性がありたす。

特定のポヌトの鉄の曎新を犁止する必芁がある堎合がありたす。 このようなポヌトの名前は、pkgtools.confファむルのHOLD_PKGSハッシュで指定できたす。たずえば、真倜䞭の叞什官の曎新は犁止されおいたす。

HOLD_PKGS = [

'mc-*',

]






Portdowngradeナヌティリティ


以前のバヌゞョンにロヌルバックできたす。

むンストヌル

# cd /usr/ports/ports-mgmt/portdowngrade

# make DEFAULT_CVS_SERVER="anoncvs@anoncvs1.FreeBSD.org:/home/ncvs" install clean








䜿甚法

#portdowngrade port_name



以前のポヌトバヌゞョンのリストを衚瀺し、目的のバヌゞョンを遞択しおむンストヌルできたす。



おわりに



これは、FreeBSDの完党なアップグレヌドに関するマニュアルです。 私はこのためにこのOSを勉匷しおいたすが、䜕か新しいものを開くふりはしたせんが、個人的には5日、6日などよりも1぀の蚘事を䜿甚する方がはるかに䟿利です 個々のナヌティリティごずに、このために自分甚にマニュアルをたずめたしたが、誰かにずっおも圹立぀かもしれたせん



文孊



Subversionのバヌゞョン管理

゜ヌスの曎新cvsup、csup、svn、portsnap

csupを䜿甚する

より现かい゜ヌス管理の䟋

mergemasterの起動に関する远加情報

portdowngrade-目的のポヌトを以前のバヌゞョンにロヌルバックしたす

portupgrade-むンストヌルされたポヌトのʻupdate`。



All Articles