haraduka's diary

やる気が欲しい

dpkgとかaptとか

なんか知らないけど、この前のupgradeしたらaptが死んで更新ができなくなりました。
ということで今日絶対直すぞ!という意気込みのもと頑張ったんですが、最終的に昔先取りしてインストールしたlibstdc++-arm-none-eabi-newlibが悪さしていたようです。removeしたら蘇りました笑。辛かった…。

その頑張りによって身につけたパッケージマネージャの知識を忘れないうちに…。

まず、dpkgはいわゆるDebianのパッケージマネージャで、aptはdpkgのフロントエンドです。
自分はaptしか使っていなかったので、実際にaptがバグって全く動かなくなってしまってからはdpkgの知識の必要性に迫られました。

dpkgの主要なコマンドをいくつか。

dpkg -i パッケージ名
ネットから.debファイルをダウンロードしてきてローカルに置き、dpkg -i ~~.debとします。aptはそれを一気にやってくれますね。sources.listとかにミラーサイトを登録するのもそのため。

dpkg -r パッケージ名
uninstallですね。 --purgeにするとetcファイルとかまで消します。

dpkg -l
パッケージの一覧取得です。|grepとかすれば何が入っているのか瞬時に調べられます。

dpkg --audit
バグ探しにとても使えました。今中断してたりおかしなパッケージの一覧を出してくれます。

echo -e "パッケージ名 hold" | dpkg --set-selections
パッケージをhold(凍結)します。アップデートされないようになります。

dpkg --get-selections "*" |grep -e "hold$"
今holdしてるパッケージの一覧が出せます。

まぁこのくらい知っていれば基本的には今の状態の把握くらいならできるでしょう。

まだapt-cacheとかapt-key addとからへんを調べてないのでまた今度必要になったときに…