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)

2008年11月3日 月曜日

『local modification time does not match remote』の対処方法

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

 FreeBSD の Ports でインストールしたアプリケーションのアップデートをしようとしたときのトラブルのメモです。

 私は普段 portupgrade で管理していますが、Smarty だけ同じエラーでアップデートできないでいました。

 ファイルがダウンロードできないというメッセージもあったので、Ports ツリーの問題だと思って様子を見ていました。ところが、1ヶ月経っても2ヶ月経っても状況は変化しないまま。さすがに違うようだと思い、最後に表示される次のエラーメッセージを検索してみることに。

local modification time does not match remote

 いくつかのサイトを見てみると、ダウンロードに失敗したりしたときになる模様。先ほどのエラーメッセージは、ファイル名は同じなのに中身が違うということのようです。『ローカルファイルの更新時間がサーバーのファイルと一致しない』という意味だと思ってましたので、ちょっとわかりにくかったです。

 対応策は、次のサイトの記事が参考になりました。

 この記事によると、手動で /usr/ports/distfiles/vim にファイルをダウンロードすればできたとのこと。早速 smarty というディレクトリを同じように作って、Smarty の公式サイトからダウンロードに失敗しているファイルである Smarty-2.6.14-docs.tar.gz をダウンロード。再度 portupgrade をしてみましたが変化なし。

 もしやと思って /usr/ports/distfiles を見てみると、そこにはすでに Smarty のファイルがありました。Smarty の場合はディレクトリなしのようです。早速ファイルを削除してからダウンロードしたファイルを移動して再度トライ。

 今度はうまくできました。

 まとめると、次のような感じでしょうか。

  1. port の更新やインストールでメッセージ『local modification time does not match remote』が表示された。
  2. /usr/ports/distfiles 以下にある該当のファイルを削除。
  3. 1をもう1度行う。
Comments (0)

2008年7月16日 水曜日

パスワードを使ったSSHログインを許可

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

 新しいサーバーでまずすることは、SSHでログインできるようにすること。そうしないと、設定方法を調べるのが面倒です。別のモニタが必要になったり、1つのモニタで表示を切り替えなくてはなりません。

 クライアントソフトはすでに Windows マシンにインストール済みなので、早速ログインをします。

 ログインをします・・・。

 ログインを・・・。

 できませんでした。ローカル環境からはできましたので、sshd が動いていないということではなさそうです。
 こうなると情報を漁ってみることになります。Google で検索してみることにしました。検索キーワードは「freebsd ssh ログインできない」で。

 どうやら、初期状態ではパスワードによるログインはできないようになっているようです。誰でもログインを試みることができる状態で運用するには危険ということで、暗号鍵を使用する方式が推奨されています。同じ部屋の中からしかログインしないので、設定を変更することにしました。

 設定ファイル /etc/ssh/sshd_config を編集します。次のようになっている場所を探します。

  1. # PasswordAuthentication no

 コメントアウトをはずし、no を yes にします。次のようになります。

  1. PasswordAuthentication yes

 変更を反映させるため、スタンドアローンでデーモンが稼動している場合は kill -HUP プロセスID で再起動させます。inetd 経由の場合はそのままでいいです。

 これで無事ログインできるようになりました。このままだと危険なので、ポートをふさぐ、アクセス元を制限するなどの対策を必ずしましょう。

Comments (0)

2008年7月13日 日曜日

ローカルサーバーを新調

Filed under: FreeBSD,自作パソコン
時間:16時31分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 ローカルサーバー(いわゆる自宅サーバーですが、特に公開しているわけではないので)として長年使っている自作パソコンがあるのですが、チップセットファンが動かなくなっていることが判明。ほとんど熱くなってませんでしたが、もともとついていたものがなくなったわけで心配です。

 CPU が Athlon XP 1700+ とかなり古めであることもあってそのうち新しいものをと考えていたのですが、これを機会に数年ぶりに新調することにしました。

 構成はこんな感じ。コンセプトは静穏&省電力&スペックアップ。

CPU
AMDAthlon LE-1620
CPUクーラー
リテール
マザーボード
ASUSTekM2NPV-VM
ビデオカード
オンボード
メモリ
A-DATAPC2-5300 1GB(バルク) ×2
HDD
SeagateST3500320AS Barracuda11
光学ドライブ
LGGSA-4120B
ケース
サードウェーブ:dPRO-SK4CASE2(ホワイト)
電源ユニット
エバーグリーンパワーグリッター EG-400PG
OS
FreeBSD 7.0-RELEASE

 OSインストールまで済ませて設定変更などを行ってるところですが、非常に静かだし熱くもありません。気温27度ほどの環境で30分動かしてみましたが、電源ユニットのあたりが少し暖かいくらいでした。ビデオカードがないということでエアフローがよくなったのか、マザーボードチップセットのヒートシンクも平気で触っていられる程度で済んでいます。CPUクーラーをファンレスにしてみたくなりました。

 しばらくは設定作業が続きます。忘れてたりすることも多いので、ブログのネタもその関係が増える予定。

Comments (0)

2007年6月14日 木曜日

Synergy は FreeBSD でも使えるらしい

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

 最近 Synergy というツールの存在を知りました。ソフトウェア PC 切り替え器だそうです。カーソルを画面の端まで持っていくと、その方向にあるPCの操作ができるようになるというもので、パソコンは FreeBSD・WindowsXP・WindowsVista の3台を使用しているので非常に便利そうだなと思っていました。

 昨日までは Windows 版の情報しか得ていなかったため、特に本腰を入れて導入してみようという気にはならなかったのですが、Linux でも使えるという情報をつい先ほど入手。Linux が使えるなら FreeBSD も対応しているかもと検索してみると、対応しているどころか Ports に入っているとのこと。

 Vista は未対応のようですが、FreeBSD の操作ができるようになるだけでも十分便利です。週末にでも導入してみようかと思っています。

Comments (0)

2007年5月21日 月曜日

ports に X.org 7.2 が入った模様

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

 久しぶりの FreeBSD ネタです。

 ports の更新を CVSup から Portsnap に変更して始めての更新通知で、膨大な量の port がリストアップされました。いろいろいじったからそのせいかと思ったら、X.org 7.2 対応の ports tree になったようです。

 今回は単に ports からインストールできるようになったというだけではなく、3D ウィンドウマネージャの Beryl も入ったようです。面白そうですけど、どうあがいてもスペック的に無理なので導入は断念。

 なお、X.Org の 6.9.0 からのアップグレードに関しては、/usr/ports/UPDATING にいろいろと書かれています。また、gihyo.jp のコラム『FreeBSD Daily Topics』にもいくつか関連記事がありますので、日本語での情報がほしい場合にはご覧になるといいかと思います。

Comments (0)

2007年4月30日 月曜日

undefined method `+’ for nil:NilClass

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

 ローカルサーバーには FreeBSD を入れていて、そこで使用しているソフトは Ports システムで管理しています。そして、その管理には portupgrade というツールを使用しているのですが、久しぶりにその設定ファイルをいじったら次のようなエラーが出るようになってしまいました。

  1. ** Error occured reading /usr/local/etc/pkgtools.conf: undefined method `+' for nil:NilClass

 結構間抜けな原因でしたが、ずっと気がつかないままだったのでメモしておきます。

 変更した設定ファイルは /usr/local/etc/pkgtools.conf。ここに、次のような記述を追加しました。

  1. ENV['PORTS_INDEX'] ||= ENV['PORTDIR'] + '/INDEX.local'

 当然これは間違っています。次のが正しい記述。

  1. ENV['PORTS_INDEX'] ||= ENV['PORTSDIR'] + '/INDEX.local'

 ENV['PORTDIR'] ではなく ENV['PORTSDIR'] です。S が抜けていました。
 undefined method の意味を関数とか機能だと解釈していたため、何がいけないんだろうとずっと悩んでいました。何のことはない。未定義変数に文字列結合はできないという意味だったようです。portupgrade は Ruby で書かれていて、このエラーは Ruby によるもののようです。Ruby をある程度使っていないと、これはわからないですね。

Comments (0)

2007年2月22日 木曜日

FreeBSD 6.x のロケールファイルは 5.x と違うらしい

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

 FreeBSD をアップグレードしてしばらく経ちますが、ある Perl ライブラリがバージョンアップできなくて悩んでました。ロケールが設定されてないとか何とか。環境変数を設定しなおしても同じメッセージが。

 エラーメッセージを検索してみたりしているうちに、ロケールファイルというものがあるらしいという情報が。「FreeBSD ロケールファイル」で検索してみると、確かにあるようです。ロケールが名前になっているディレクトリがたくさんあり、その中にもなにやらファイルが。どうやらこれのことのようです。

 で、さらに検索結果を眺めていると、6.0 からはロケールファイルのフォーマットが変わっているという情報が。6.0 以前の環境でコンパイルしたプログラムは、このせいでうまく動作しないとか。問題のライブラリは Perl スクリプトでコンパイルするようです。そして、インストールされている Perl は FreeBSD をアップグレードする前に Ports からインストールしたものです。 perl -v で同じメッセージも出ます。

 というわけで、Perl の再インストールをしてみました。perl -v でエラーメッセージが出なくなりました。

Comments (0)
Page 1 of 212

HTML convert time: 0.157 sec. Powered by

Images is enhanced with WordPress Lightbox JS by Zeo