スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ntp・ntpdateのダウングレード

帰宅してパソコンに電源を入れたら、siduxが起動途中で止まってしまうトラブルに遭遇。

画面の表示を見ると、ネットワークを介して時刻の調整をするntpサービスを起動させようというところで止まっているようだ。

そういえば、今朝出かける前にdist-upgradeしたらntpとntpdateパッケージがアップグレードされていた気がする…。インストールに失敗したか、バグのあるパッケージを掴まされたか?



入れ直すにせよ、ダウングレードにせよ、どちらにしろ立ち上がってくれなければ仕方がないわけで。シングルユーザーモードがntpサービスを読み込まないことを祈りながら、シングルユーザーモードで起動してみる。

siduxの場合、GRUBのメニューが立ち上がったらそのまま

single

と入力してenterすればシングルユーザーモードで立ち上がる。

よかった、ntpは立ち上がらなかった。ので、

# apt-get remove ntp ntpdate
# apt-get install ntp ntpdate

で再インストール。終わったら

# exit

で通常モードへと移行。

さっきと同じところで止まる。



というわけで、ダウングレードしましょ。もう一度シングルユーザーモードで起動して、

# apt-get remove ntp ntpdate

で問題のsidパッケージを削除する。

代わりにtestingのパッケージを入れる。

# vi /etc/apt/sources.list

のtestingの行のコメントアウトを外す。

# apt-get update
# apt-get -t testing install ntp ntpdate

これでtestingのバージョン、昨日までのsidのバージョンでもあったものが入る。

入ったはいいが、このままではd-uでアップグレードされてしまう運命なので、

# echo ntp hold | dpkg --set-selections
# echo ntpdate hold | dpkg --set-selections

でアップグレードを保留する。

後は次のバージョンがsidに用意されるのをしばし待つ。どのくらい時間かかるかな…つい数日前にようやくアップグレード保留のパッケージがなくなったと思ったらすぐにこれだ。siduxを使っている以上仕方がないんだが、早めに直ってほしいものだ。


追記

カーネル2.6.25が入りましたが、nvidia-kernelのビルドができません。2chの書き込みによると、atiのドライバも問題が出るとのこと…。幸い、カーネルは自動でアップグレードされないので、しばらく様子見か。

スポンサーサイト

テーマ : UNIX/Linux
ジャンル : コンピュータ

experimental…その後

experimentalのリポジトリ内でxulrunner-1.9のバージョンが1.9~b5-1からb5-3に上がりました。
それに伴い、依存関係にあったexperimentalのパッケージであるxulrunner-1.9-commonとlibmozjs1dのバージョンも1.9b5-3に上がりました。libxpcomglue0dは依存関係から外れ、experimentalのリポジトリから消えました。sidに落ちたわけでもなさそうなので、単純に削除されたのでしょう。



しかし、aptは自動アップグレードをやってくれませんでした!



ので、今挙げた三つのパッケージは手動でアップグレードしなくてはなりません。

# apt-get -t experimental install xulrunner-1.9 xulrunner-1.9-common libmozjs1d

xulrunner-1.9だけでもアップグレードすればaptは残り二つのパッケージのバージョンアップを感知して自動的にインストールしてくれるのかと思いきや、そうではありませんでした。ので、三つとも手動でアップグレードを行いました。

で、依存関係から外れたlibxpcomglue0dは削除。

# apt-get remove libxpcomgle0d

よーするに、わざわざexperimentalなんか使うのならば自分で面倒見ろよ、ということか。めんどくさ。



追記

apt-pinningを使えば自動アップグレードもできますね…無制限にアップグレードされるのも困るから、その都度設定して、設定を消してと、手動よりも面倒くさいことになりますが、aptに手動インストールしたと認識されずに済ますことができます。

テーマ : UNIX/Linux
ジャンル : コンピュータ

sidにおけるjavaの依存関係の問題

siduxはいくら安定しているといっても、Debian sidのパッケージリポジトリを借用している以上、不安定になることの覚悟、特にソフトウェアパッケージ相互の依存関係が壊れることについての覚悟は必要です。

で、三月の終わりごろのjava6関連のパッケージのアップグレードで、sun-java6-pluginというwebブラウザ上でjavaソフトウェアを扱うためのプラグインのパッケージがxulrunner-1.9というパッケージを要求するようになりました。

しかし、このxulrunner-1.9というパッケージ、どういうわけか四月も下旬になったというのに未だにsidのリポジトリに存在しません。experimentalという、問題を抱えていてsidにすら入れられない実験用のパッケージリポジトリには存在するのですが…つまり、問題が取り除かれればsidに移行されるのでしょうが、とにかく一月ほどsun-java6-pluginはsidリポジトリ内で依存関係を満たすことができないでいます。つまり、インストールもアップグレードもできないのです。


xulrunner-1.9を要求する前のパッケージを持っていれば、

# echo sun-java6-plugin hold | dpkg --set-selections

でアップグレードをholdしてしまうことで問題は回避できます。しかし、気づかずにdist-upgradeをしてしまった場合はこのパッケージが削除されてしまい、どうしても使いたければtestingにあるものを借りてくるしかなくなります。

しかし、リリースの段階の違うものを使うというこの行為、いつかボロが出ます。ましてや、パッケージの入れ替わりの激しいsidのこと。意外にもその日は早く訪れました。

java関連の依存関係が崩壊を始めたのです。つまり、sidのソフトウェアたちがtestingのバージョンよりも上のものを要求するようになりました。



というわけで、もう仕方がない。experimentalのパッケージをもらってこよう。ただし、どんなバグを含んでいるか分からないのでパソコンの前のよいこのみんなはまねしないように。

まず、

# vi /etc/apt/sources.list

このコマンドでviを起動、起動したら

#deb http://cdn.debian.or.jp/debian/ experimental main contrib non-free
#deb-src http://cdn.debian.or.jp/debian/ experimental main contrib non-free

と書いてある行を探し、コメントアウトを外す。保存したら

# apt-get update

experimentalのパッケージはあえて指定してやらないと入らないそうなので、勝手にアップグレードされてしまう心配はないようだ。で、あえて指定する

# apt-get -t experimental install xulrunner-1.9

これでインストールできる。このとき同時にインストールされるパッケージ名をメモっておくように!!問題があったら即刻削除して原状回復するために。俺はメモり忘れたよ…。インストールが終わったら

# apt-get install sun-java6-plugin

インストールができるようになっているはず。

なお、入っているexperimentalのパッケージを確認するコマンド。

$ apt-show-versions | grep experimental

いずれはxulrunner-1.9もsidに落ちてくるだろうから、そのときはsources.listのexperimentalの行をコメントアウトすることを忘れないように。



さて、今のところ問題なく動いてくれているようですが、今後どうなるかね…。これだけ長くexperimentalにいるということは何か問題があるんだろうね、絶対に。早くsidに落ちてくれば良いんだけど。

それと、experimentalのソフトウェア、sidに落ちてきたらaptは自動的に入れ替えてくれるんだろうか。

テーマ : UNIX/Linux
ジャンル : コンピュータ

siduxの安全なアップグレード

siduxを入れて二ヶ月。致命的なバグを抱えたソフトウェアを導入してしまってシステムを破壊された、などという事態には(幸運か、それともsiduxチームのおかげか)まだ遭遇していませんが…。

しかしさすがはDebian sid、更新も早いですが、パッケージ同士の依存関係が壊れたまま最新パッケージがリポジトリにアップされて(つまり、あるソフトの最新版が用意されたのでそのパッケージをインストールもしくはアップグレードしたいのだが、そのソフトの動作に必要となる他のパッケージが用意されていない状態)、aptコマンドでアップグレード(sidならばdist-upgrade)をかける際に、aptがそれを使えないパッケージと判断し、既にインストールされているものを削除にかかるという事態に遭遇することはしばしばあります。

まあ、こういったケースの場合、大抵はしばらく待てば足りないパッケージがアップされるので、その場でのd-uを止めて次の日にもう一回やってみればまず問題なくアップグレードできるものなのですが。

しかし、長期間依存関係の壊れたパッケージが放置されるということも考えられないわけではありません。現にこの二週間ほどsun-java6関連のパッケージの依存関係がおかしいようです。

siduxには、smxiという専用のパッケージ管理システムがあり、これは依存関係の壊れたパッケージの扱いに長けているようなのですが…すみません、俺はDebianのaptという極めて使い勝手の良いパッケージ管理システムに甘やかされてしまって、これ以外のものの使い方を覚える気も起きません。



siduxマニュアルを読めばすぐに分かることだが、siduxを安全にアップグレードするためのメモ。

# apt-get dist-upgrade -d

このコマンドはダウンロードオンリーモードといって、パッケージのダウンロードだけにとどめて実際のアップグレード作業を行わないため、X上のコンソールから実行してよいそうだ。その際に、実際にアップグレードを行う場合のアップグレードされるパッケージ・(依存関係に新たに入って)新規インストールされるパッケージ・(依存関係から外れて、もしくは関係が壊れていて)削除されるパッケージについての通知をしてくれる。

そのため、依存関係の破壊に早めに気づくことができる。つまり、必要なパッケージが削除されることが通知されれば、それは依存関係が壊れているということだ(単に外れただけで壊れたわけではない場合との区別は難しいが…)。そうなったら、必要なパッケージがちゃんとアップされるまでd-uを行わなければ良い。



しかし、その依存関係がしばらく壊れたままになっているとそうもいかなくなる。アップグレードというのはバグやセキュリティホールの修正といった必要があるからこそ行うのであって、あるパッケージのアップグレードができないからといって他のアップグレードもできないとなると、システム全体が不安定・脆弱な状態に曝されることに。

というわけで、特定のパッケージのアップグレードを保留させる方法を。例えば、hogehogeというパッケージのアップグレードを止めたい場合、次のコマンド。

# echo hogehoge hold | dpkg --set-selections

保留指定を解除したい場合は次のコマンド。

# echo hogehoge install | dpkg --set-selections

依存関係が壊れる原因となっているパッケージのアップグレードがどれなのか探すことに少々骨が折れるが、Debianサイトのパッケージ検索や、場合によっては(かなり強引な手法になるが)削除されそうになっているパッケージそのものをholdすることで、様子をみるのが良いと思う。

依存関係が壊れたのか、それとも外れただけであくまで正常な動作なのか判断は難しいけど、一応俺はアプリケーション本体や自分が意図的にインストールしたライブラリが削除される場合は依存関係が壊れたとみてholdで様子見、知らないライブラリが削除される場合と代わりらしいものが新しくインストールされようとしているときは外れただけとみて通すようにしています。



それと、siduxから配布されるGUI環境(KDEもしくはFluxbox)はコマンド

# init 3

で停止するみたいだけど、Debian純正のrunlevelは2から5まで区別しない決まりなので、それ以外のものを使っている場合init 3では停止しない。停止させるには

# init 1

でシングルユーザーモードにしてしまうのが手っ取り早いと思う。もしくはGRUBのブートメニューからsingle user modeを選ぶか、ブートオプションの最後に「single」と書き足して立ち上げるとか。



この内容を読んでピンと来た方もいらっしゃると思うので、恥かく前に言っておきます。一昨日2chのLinux板siduxスレッドでjavaやOOoの依存関係が壊れているのは俺だけ?のと書き込んだのはこの私です。muchanさんいつもお世話になってます。

テーマ : UNIX/Linux
ジャンル : コンピュータ

siduxの導入その後

sidux、二週間使いましたが安定しています。KDEを捨ててGNOMEを入れるという、おそらくは間違った使い方をしていますが、それでも安定しています。ただし、GNOMEは公式マニュアルにある

# init 3

コマンドでは停止しないので、アップグレードするときは注意が必要ですが(結局、アップグレードかけるときにはinit 1でシングルユーザーモードにしているが、これで良いんだろうか?)。

やはり、GNOMEを入れるのが間違っているのかも…。



しかし、/etc/apt/sources.list.d/以下のファイルを見てみれば分かりますが、これは基本的にDebian sidからパッケージを直接もらってきていて、それにさらにsiduxから修正パッケージと独自パッケージを追加しているもののようです。

よって、基本的にDebian sid向けのパッケージが動きます。debian-multimediaが使えるのでマルチメディア関連は困りませんし、Compiz Fusionで3Dデスクトップも動きました。

何より、Debianのaptに用意されている大量のアプリケーションソフト、それも最新のものが何も考えずに使えます。

ただし、sid=不安定版なので、安定性の保証があるわけではないみたいで、例えば俺の環境の場合、etchでは安定して動いてくれたAzureusがsidux上では全くアップもダウンもできず、さらに時々固まります。まあ、おかげでTransmissionという軽快なBitTorrentクライアントソフトに出会えたので文句は言いませんが。

# apt-get install transmission-gtk

GTK+ベースなので、特にGNOMEと相性が良いです。



しかし、もっと不具合がボコボコ出て泣きながらetchに戻ることを想像していたので、ちょっと意外でした。気がついたらetchを消してメイン環境にしていましたw



いくつか注意を。

現段階で日本語化するのは(メタインストーラができたとはいえ、まだ)面倒です。間もなくだと思われる次のリリースでデフォルトで日本語化されたものが配布されるでしょうから、それを待つのも手かもしれません。一旦日本語化してしまえばそれ関係で苦労することはほとんどないので、これは特に問題点とは言えないかもしれないですけど。

今のところ安定していますが、今後もそれが続く保証はありません。また、環境によっては現段階でも不安定になることは充分考えられます。

ほとんどDebianと同じ感覚で使えますが、アップグレードだけはちょっと面倒な手順を踏まなくてはなりません。KDEを捨ててGNOMEを使っている場合、上に書いた通り挙動が変わるのでさらに注意。

そして、最大の注意ですが、現在sidux-erosをLiveCDからインストールすると、なぜかデフォルトでOpenSSHサービスがインストールされ、OSの起動と同時に立ち上がる設定にされます。これは、ネットワーク上から遠隔操作されるための機能なので、これの起動しっ放しは危険です。止めるか、iptablesでtcp22番ポートを塞ぐかして、必要なときだけ動かすようにしましょう。俺は遠隔操作する予定もされる予定もないので削除しました。幸い、削除はaptで一発です。

# apt-get remove openssh-client openssh-server

何考えてこんなもの入れたんでしょ?Debianには入っていないのに。



しかし、これいいですよ。個人でデスクトップで使う分には、etchよりこっちの方がずっと良いかもなどと無責任な事を考えていますが、いかがでしょ?

テーマ : UNIX/Linux
ジャンル : コンピュータ

プロフィール

ざっぱー

Author:ざっぱー
(この画像について)

当ブログについて
メール
(このメールアドレスへの特定電子メール (迷惑メール) の送信はお断りします)

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。