配布されてた .deb ファイルを dpkg -i tool.deb で入れようとしたら、依存するパッケージがないってエラーで止まった
パッケージを入れるだけやのに、なんで
【疑問】dpkg -i で入れたら依存関係のエラー。dpkg と apt はどう使い分けるん【LPICレベル1】
>>1
dpkg は、手元の .deb を1つずつ入れたり消したりする道具で、足りない依存パッケージを取ってくる機能はない
apt(apt-get)はリポジトリから依存関係をたどって、必要なものをまとめて入れる。中では dpkg を使ってる
>>2
じゃあ止まったあとはどうするん
>>3apt-get install -f で、足りない依存を入れて途中の状態を直せる
最初から apt install ./tool.deb のようにパスで渡せば、依存もまとめて入れてくれる
dpkg の他のオプションは?
>>5
よく出るのはこのあたりdpkg -l:入ってるパッケージの一覧。dpkg -s パッケージ名:状態やバージョンdpkg -L パッケージ名:そのパッケージが置いたファイルの一覧。dpkg -S ファイル名:そのファイルがどのパッケージのものか
>>6
-r と -P の違いは?
>>7-r(remove)はプログラムを消すけど、設定ファイルは残す。-P(purge)は設定ファイルまで消す
apt でも同じで、apt-get remove と apt-get purge
>>8
設定を残す意味ってある?
>>9
入れ直したときに同じ設定で使える。dpkg -l で状態が rc になってるのは、消したけど設定だけ残ってるパッケージ
dpkg -S /bin/ls したら見つからんって出たんやけど
>>11
最近の Debian 系は /bin が /usr/bin へのリンクになってて、パッケージには /usr/bin/ls として登録されてることがあるdpkg -S /usr/bin/ls なら coreutils: /usr/bin/ls と出る
>>12
入ってないパッケージの中身を調べることはできるん?
>>13
dpkg はインストール済みのものしか分からない。リポジトリにあるものを調べるのは apt-cacheapt-cache search キーワード で探す、apt-cache show パッケージ名 で説明、apt-cache depends パッケージ名 で依存
update と upgrade、名前が似すぎてて混ざる
>>15apt-get update はリポジトリから「どんなパッケージがあるか」の一覧を取り直すだけで、何も入れないapt-get upgrade は、入ってるパッケージを新しい版にする。だから update してから upgrade
>>16
今は apt-get じゃなくて apt を使えばええんやろ。試験で apt-get を覚える意味ある?
>>17
apt は人が打つ用に表示が見やすくなってて、ふだんはそれでいい
でもスクリプトでは、出力の形が変わりにくい apt-get や apt-cache が勧められてる。試験の範囲(102.4)も apt-get・apt-cache が中心で、apt は「知っておく」扱い
リポジトリの場所はどこに書いてあるん
>>19/etc/apt/sources.list と、/etc/apt/sources.list.d/ の下のファイル
書き換えたら apt-get update で一覧を取り直す
dpkg-reconfigure って何するん
>>21
インストールのときに聞かれた設定を、もう一度聞き直してやり直すdpkg-reconfigure tzdata でタイムゾーンを選び直す、みたいに使う
管理人のひとこと
- dpkg は手元の .deb を1つずつ扱い、依存は解決しない。apt / apt-get はリポジトリから依存ごと入れる。止まったら apt-get install -f、最初から apt install ./xx.deb でもよい。
- dpkg -l(一覧)、-s(状態)、-L(パッケージのファイル)、-S(ファイルのパッケージ)。-r は設定を残し、-P は設定まで消す(rc は設定だけ残った状態)。
- 未インストールのものは apt-cache search / show / depends。update は一覧の更新、upgrade が更新の実行。リポジトリは /etc/apt/sources.list と sources.list.d。