[トップ] [自作PC] [PCの履歴] [フリーソフト] [プロバイダー選び] [レンタルサーバー]
[ワイマックスで損しない方法] [VPS比較] [フレッツ光東西でギガビットインターネット接続] [着メロ] [MSX] [ツイッターでポイントを貯めよう!
|
||
東京電力(時分) 万kW / 万kW (.9%) 東北電力(時分) 万kW / 万kW (.2%)
関西電力(時分) 万kW / 万kW (.4%) 九州電力(時分) 万kW / 万kW (.6%) 北海道電力(時分) 2.2万kW / 3.4万kW (.6%) FreeBSDメモ mergemasterは-sivaでなく-UPiで[FreeBSDメモに戻る]
mergemasterは-sivaでなく-UPiでmergemasterについて、FreeBSD-questionsに面白い投稿 もし結論を早く知りたい人がいれば、結末から読んでください。 mergemasterにはかなり前に自動アップデート機能が追加されていたらしく…。 具体的には、mergemasaterに-Uオプションを与えて実行する。 これは、ユーザ変更がされていないファイルであれば自動的にアップデートするというもの。 便利は便利なのだが、その性質上、ユーザ変更の有無を比較するための原本が必要になる。 その原本が/var/db/mergemaster.mtree。 今までに何度かmergemasterを実行していれば上記ファイルはあるはずだが、ない場合には「ソースをアップデートする前に」mergemasterを一回カラ打ちする必要がある。
# mergemaster *** Unable to find mtree database. Skipping auto-upgrade. *** Creating the temporary root environment in /var/tmp/temproot *** /var/tmp/temproot ready for use *** Creating and populating directory structure in /var/tmp/temproot mtree -eU -f /usr/src/etc/mtree/BSD.root.dist -p /var/tmp/temproot/ (略) こうしておけば、次からmergemaster -Uとやるだけで、かなりのファイルを自動アップデートしてくれて楽になるはず。 しかし、自動アップデートはやはり怖いので、入れ替え前のファイルはどこかに保存しておきたい。だから-Pオプションも追加。バックアップは/var/tmp/mergemaster/preserved-files-`date %y%m%d-%H%M%S`に作られる。 さらに、アップグレードにより新規に追加されたファイルは問答無用でインストールしていいはずなので、-iオプションも追加。 つまりmergemaster -UPi ところで、mergemasterの設定ファイルであるmergemaster.rcは/usr/share/examples配下にない。何でないのだろう、と思っていたのだが、なんとmergemasterのマニュアル内にあった。最後まで読んでなかったよ…。 というわけで、以下のファイルを/etc/mergemaster.rcとして保存しておけばオプション要らず。
AUTO_INSTALL=yes AUTO_UPGRADE=yes PRESERVE_FILES=yes PRESERVE_FILES_DIR=/var/tmp/mergemaster/preserved-files-`date %y%m%d-%H%M%S` IGNORE_MOTD=yes VERBOSE=yes AUTO_UPGRADEが-Uオプションに対応するが、現時点(7.1-BETA2)ではマニュアルに記載されていない。 4行目以降はmergemasterのマニュアルを参考に書いた。 PRESERVE_FILES_DIRはバックアップファイルを置くディレクトリ書式の指定。 IGNORE_MOTDはmotdを無視する設定。 mergemasterをさらにさらにさらに早くmergemasterについては、mergemasterを少しだけ楽に、mergemasterは-sivaでなく-UPiで。とやってきたが、つい先頃、7.1-STABLEと7.1-RELEASEを行き来した際、CVS Idが違うだけで「どうするよ?」と山ほど聞かれたのにウンザリして、改めてmergemasterのmanを読んだら解決したのでメモ。結論をさっさと書くと、下記が俺の/etc/mergemaster.rc ポイントは最下行。この指定によりCVS Idを無視して比較してくれるので、かなり楽になる。
AUTO_UPGRADE=yes AUTO_INSTALL=yes IGNORE_FILES='/etc/motd' PRESERVE_FILES=yes VERBOSE=yes DIFF_OPTIONS='-I$FreeBSD:.*[$]' manから引用すると下記の通り。 #Additional options for diff. This will get unset when using -s. #DIFF_OPTIONS='-I$FreeBSD:.*[$]' # Ignores CVS Id tags 注意すべきは、この設定はコマンドラインオプションでは指定できず、/etc/mergemaster.rcに記載しておく必要がある点。 まあ、上記のようにすれば後はmergemasterと叩くだけだから。 なお、以前の記事でmergemaster.rc内に記載していたIGNORE_MOTDオプションは今後無くなる運命なので、IGNORE_FILESとして/etc/motdを指定すること。 参考までにテスト用VirtualBoxのFreeBSDマシン (8.2-RELEASE) を何も考えずに容易にアップデートできました。ついでに、9.0-CURRENTのビルド
*default host=cvsup.local *default base=/usr *default prefix=/usr *default release=cvs tag=. *default delete use-rel-suffix src-all
*default host=cvsup.local *default base=/usr *default prefix=/usr *default release=cvs tag=. *default delete use-rel-suffix ports-all
AUTO_UPGRADE=yes AUTO_INSTALL=yes IGNORE_FILES='/etc/motd' PRESERVE_FILES=yes VERBOSE=yes DIFF_OPTIONS='-I$FreeBSD:.*[$]'
#cvsup releng-supfile #cd /usr/src #make buildkernel kernconf=GENERIC #make buildworld #make installkernel kernconf=GENERIC #make installworld #mergemaster -UPi #reboot え?シングルユーザーに移行してないって? p.s9.0はこんなブート画面になるんだね@@アンケートこのことに関する話題 |
||