Google Crisis Response(Google)
災害に関する情報源や、行方不明者情報の収集と検索を行う『パーソンファインダー』を初めとするツールの提供が行われています。

2011年2月27日 日曜日

依存されていない ports の探し方

Filed under: FreeBSD
タグ:, ,
時間:15時30分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

FreeBSD には、ports というパッケージ管理システムがあります。ソースコードのダウンロードし、パッチをあて、コンパイルし、インストールするという手順を簡略化してくれます。package というものもありますが、こちらはコンパイル済みになっています。

昔はコンパイルに時間がかかるために package を利用することが多かったのですが、スペックアップにより余裕ができたため ports に移行しました。必ずしも package で公開されているとは限らないのと、ports のほうが早く公開されるためというのが理由です。

さらに言えば、ports 管理が楽になる portupgrade があるおかげでもあります。このツールによって、毎晩更新のあった ports をメールで通知させることが出来ていますし、更新作業も非常に簡単になりました。

さて、前置きはここまで。

ports で困るのは、依存関係の把握が大変であるということ。数が少ないうちはいいのですが、依存する ports のインストールを繰り返しているうちにどんどん増えてしまいます。昨日の段階では300を超える ports がインストールされていました。

このほとんどは Xorg というGUI環境のための関係。FreeBSD のインストールのときに使うつもりでインストールしてあったのですが、結局使わないまま肥やしとなっていました。依存する ports の把握が出来ないために手をつけられなかったのです。

実は一昨日のメールで Xorg のアップグレードがあり、一気に膨大な ports の更新通知がありました。まとめて更新してしまうことも出来なくはないのですが、ちょうど週末ということもあってよい方法がないか情報収集をしてみることになったのです。

そして、非常にありがたい情報を発見しました。それがこのページ。

pkg_root は、uyota さんが作ったシェルスクリプトの名前。pkg_tree と AWK を使って、どこからも依存されていない ports をリストアップするというもの。スクリプトといっても短いものなので、ワンライナー的な使い方が出来ます。私は次のようにしました。

  1. pkg_tree | awk 'NF == 1{ prog[$1]++ } NF == 2{ prog[$2]-- } END{for(i in prog) if(prog[i] > 0) print i }'

AWK に詳しくないのですが、pkg_tree の実行結果を AWK で受け取り、依存する側の場合はカウントアップし、依存される側の場合はカウントダウン。最終的にカウント数が正のもの(依存されていないもの)だけを表示するという仕組みのようです。

実行結果から必要な ports を取り除くと、1回目は120個以上となりました。これを元に、地道に portupgrade 付属の pkg_deinstall でアンインストールをします。1度終わったら、再び依存されていない ports をリストアップ。依存していた ports が前回の作業でアンインストールされていれば、新たに依存されていない ports が増えます。

これを何度も繰り返し、最終的に必要な ports だけになれば終了です。最終的には100を切るまで減らすことが出来ました。如何に無駄が多かったかということですね。

最後にお決まりの一言。

この記事の内容は無保証です。自己責任で行ってください。

Comments (0)

2010年8月22日 日曜日

FreeBSDの定期メールが来なくなったら

Filed under: FreeBSD
タグ:, , , , , ,
時間:0時51分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

テスト環境およびファイルサーバーとして、FreeBSD を使ったローカルサーバーがあります。cron での実行結果などを日々メールで送ってくれるようになっているのですが、7.3R にアップグレードをしてから来なくなってしまいました。

前回のアップグレードでも同じ現象があったのですが、どうやって直したのか忘れてしまっていて手間取ったので、メモとして残しておきます。

結論から言いますと、原因は/etc/mail/mailer.conf の構文エラーでした。

アップグレードは freebsd-update を使用したのですが、その際に変更内容を示すデータがそのまま反映されてしまい、次のようになっていました。

  1. <<<<<<< current version
  2. =======
  3. # $FreeBSD: src/etc/mail/mailer.conf,v 1.3.38.1 2010/02/10 00:26:20 kensmith Exp $
  4. >>>>>>> 7.3-RELEASE
  5. #
  6. # Execute the Postfix sendmail program, named /usr/local/sbin/sendmail
  7. #
  8. sendmail    /usr/local/sbin/sendmail
  9. send-mail   /usr/local/sbin/sendmail
  10. mailq       /usr/local/sbin/sendmail
  11. newaliases  /usr/local/sbin/sendmail

1・2・4行目が追加された行で、それぞれをコメントアウトすることで修正できます。

なお、解決に至ったのは、ログファイル/var/log/dmesg.today に次のようなエラーが記録されていたためです。

  1. pid 44294 (mailwrapper), uid 0: exited on signal 11 (core dumped)

先ほどの /etc/mail/mailer.confmailwrapper の設定ファイルです。cron で実行する簡単なプログラムをコンソールから実行してみたところ、その時刻に上記ログが記録されていたため解決することができました。

Comments (0)

2009年4月25日 土曜日

FreeBSD の X.org ディスプレイ設定メモ

Filed under: FreeBSD
タグ:, , ,
時間:18時02分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

FreeBSD の X.org のディスプレイ設定内容を、メモを兼ねて公開。ビデオカードが骨董並みに古い・・・。

引退が決まっているローカルサーバーなので、更新もせずにほったらかしです。

OS
FreeBSD 6.2
X.org
7.3
モニター
SONY SDM-X73
ビデオカード
クリエイティヴ・メディア Graphics Blaster RIVA TNT AGP 16MB
  1. Section "Monitor"
  2.     Identifier   "Monitor0"
  3.     VendorName   "SONY"
  4.     ModelName    "SDM-X73"
  5.     HorizSync    28-80
  6.     VertRefresh  48-75
  7.     Option       "DPMS"
  8. EndSection
  9.  
  10. Section "Device"
  11.     Identifier  "Card0"
  12.     Driver      "nv"
  13.     VendorName  "Generic"
  14.     BoardName   "nv"
  15.     ChipSet     "RIVA TNT"
  16. EndSection
  17.  
  18. Section "Screen"
  19.     Identifier "Screen0"
  20.     Device     "Card0"
  21.     Monitor    "Monitor0"
  22.     DefaultDepth      24
  23.     SubSection "Display"
  24.         Depth     1
  25.         Virtual 0 0
  26.     EndSubSection
  27.     SubSection "Display"
  28.         Depth     4
  29.         Virtual 0 0
  30.     EndSubSection
  31.     SubSection "Display"
  32.         Depth     8
  33.         Modes     "1280x1024" "1024x768" "800x600" "640x480"
  34.         Virtual 0 0
  35.     EndSubSection
  36.     SubSection "Display"
  37.         Depth     15
  38.         Modes     "1280x1024" "1024x768" "800x600" "640x480"
  39.         Virtual 0 0
  40.     EndSubSection
  41.     SubSection "Display"
  42.         Depth     16
  43.         Modes     "1280x1024" "1024x768" "800x600" "640x480"
  44.         Virtual 0 0
  45.     EndSubSection
  46.     SubSection "Display"
  47.         Depth     24
  48.         Modes     "1280x1024" "1024x768" "800x600" "640x480"
  49.         Virtual 0 0
  50.     EndSubSection
  51. EndSection
Comments (0)

2005年10月28日 金曜日

改訂第二版 FreeBSDビギナーズバイブル

Filed under: FreeBSD,読書中
タグ:
時間:2時34分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 何日か前から読み始めていましたが、書くのをすっかり忘れていました。

 届いたのは確か19日だったと思います。ビデオテープが従数本入りそうな箱に入って、ペリカン便で届きました。中は、ダンボールの板と一緒にビニールでシュリンクされた状態で、衣類のカタログも一緒に入っていました。

 ちなみに、本自体の厚みは15センチ。”鈍器”と呼ばれる某所のカタログに対抗出来そうな分厚さです。仰向けに寝転がってみることはもちろん、ひざの上に載せて読み続けるのも厳しい重さ。なかなかのボリュームです。
 ただし、実際は図や表が多いため、読むのはそんなに大変ではないですね。現在半分ほど読み終わりました。対象が初心者を含んでいるので、内容もあまり突っ込んだものではないです。FreeBSD ハンドブックと併用するとよさそうです。

Comments (0)

HTML convert time: 1.998 sec. Powered by

Images is enhanced with WordPress Lightbox JS by Zeo