- 締切済み
Linux dpakgとapt-getの違い
dpakgとapt-getコマンドの使用方法の違いをおしえてください どちらもパッケージ管理ツールという認識でよいのでしょうか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- wakagi1189
- ベストアンサー率41% (16/39)
Debianを日頃使っている者の意見としては、 dpkgはパッケージ管理ソフト。 apt-getはdpkgを操作するソフト。 aptitudeや、ほかGUIソフトは、apt-getを操作するソフト。 といえばわかりやすいでしょうか。 apt-getや、aptitudeがdpkgに依存しているのは、つまりこういうことです。 より高次元(aptitude)になればなるほど、低次元(dpkg)で数手かかることを一手でできるようになったり、人間側に使いやすい操作になりますが、細かい作業ができなくなります。 たとえば、apt-getは、dpkgのできない依存関係からまとめてインストール。をできますが、 依存関係無視で無理やりインストールとか、個々のパッケージのインストール環境情報とかはわからなかった気がします。 でも、GUI系のパッケージ管理ソフトでパッケージ管理とか、めちゃくちゃ面倒くさいですよ。 たとえば、リポジトリ過追加や、sidパッケージによる依存関係破綻なんかでは、 aptitudeは、より簡潔にするため、回避方法を自動で縛られたりすることがあります。また、インストールしていないパッケージの関係が破綻しているからといってエラーを永遠吐くこともありました。 もちろん、こういう時は、apt-getやdpkgで回避して、それからまたaptitudeを使えばいいんですが。 個人のおすすめとしては、apt-getを普段使うようにしていたほうがいいと思います。 これでほとんどのことはできますし、数手かかること、たとえば、毎週アップグレード確認してアップグレードしてログ取りをしなさい、エラーなら報告すること!、とかならスクリプトを書いて、cronで回せばいいことですし。
- vaidurya
- ベストアンサー率45% (2714/5983)
Linuxでは多様なソフトウェアを、自由に組み合わせることが可能ですが たとえば、膨大なワインの種類の中から、適したものをソムリエが選んでくれるように DebianやRedHatのような組織が、ディストリビューションとして 動作検証された組合せで提供しています。 dpkgは、Debianで開発された技術で、deb形式のパッケージと対となります。 (RedHat系にはrpm形式とrpmコマンド、それにyumなどが用意されています) ディレクトリーの管理ルールや、サーバーなどの自動実行の設定などについて debパッケージから導入することで、システム設定との整合を得ることができます。 インストールだけでなく、たとえばdpkg -l bashで、bashのバージョンを知ることができます。 dpkg -l|wc -lの数字は導入済みのパッケージの数と解釈していいんだっけ? まぁ、うちは2458パッケージが入っているようなんですが、これらの依存関係を 手作業で管理することは困難です。そのために生まれたのがaptという技術です。 動作検証されたバージョンを揃えたディストリビューションの中で あるソフトが最新版になるためには、同時に最新版が求められるライブラリーがあることもあります。 そういった依存関係を、aptは管理してくれます。 deb,aptの技術の上で、さらにGUI化されたSynapticなどのツールもありますし CLIではなく、CUIでの管理を提供するaptitudeというツールもあります。 aptitudeのCUIは、GUIを入れていないサーバーなどの管理に便利で 一覧から自動インストールされたパッケージを識別することもできますし 特定パッケージをアップグレード対象外にすることもできます。 特殊な運用が必要なときに便利です。 aptitudeはCLIからの利用もできますから、インターネットの導入手順記事を見ると apt-getやaptitudeでの操作がそのまま書かれていることもよくあります。 これをカットアンドペーストするだけで事足りることもよくあります。 ディストリや時期が違えば、パッケージ名が違うことはありますけどね。 反面、Amazon MP3のように、専用ツールをdeb形式で配布していることがあります。 こういうのは、ダウンロードしてきてdpkgで導入することになります。 ただし、ディストリビューションによっては、debをダブルクリックすれば GUI上でインストール作業ができる場合もあります。 ソースからインストールする場合に、一旦debパッケージを作ってから 実際のインストールを行うという場合もあります。aptは使えずdpkgを使います。 たぶん、同じソフトの新バージョンへの入れ替えなどの管理性が良いはずです。 私個人としては、たまにバージョンを確認したい時にdpkg -lを使うくらいです。 Synapticでも参照できますが、遅いPCほど、所要時間の差は大きいはずです。
お礼
丁寧な回答をありがとうございます。 導入するパッケージおよび環境によって、apt、dpkg、aptitudeを使い分けなくてはいけない。という認識で大丈夫でしょうか? 管理ツールを使いわけるために1つのLinuxに何個も管理ツールを導入して良いということでしょうか? 再度、質問になり申し訳ございません。回答いただけるとたすかります。
- kaizen_nagoya
- ベストアンサー率63% (21/33)
自分でソフトウェアを書いて、パッケージを作るのでなければ,apt系のコマンドを使うだけでよいので,違いを知る必要はないかも。 apt系のコマンドでよく使うのが, apt-get update で対象を最新のものにする。 apt-get install [target-name] でtarget-nameを導入する。 この2つが分かればよいかも。 apt-get upgrade を使う前にはより調査をしてから使うとよいかも。 (一度、うまくできなかったことがあります) さらに,その上に利用しやすくしたaptitudeやsynapticを使っている方もいるらしい。
お礼
回答ありがとうございます。 参照ページわかりやすくとても役に立ちました。 まだまだ、自分での調べが甘かったです。
- ok-kaneto
- ベストアンサー率39% (1798/4531)
追伸: aptitudeがあるならそちらの方が良いかも。
お礼
わかりました。ありがとうございます。 まだ、Linux導入したばかりでaptitudeが使えるかどうかも判断できていません。 aptitudeがあるようでしたら使用してみます。
- ok-kaneto
- ベストアンサー率39% (1798/4531)
dpkgのことですよね。 どちらもDebian系のパッケージ管理ツールです。 ただし、dpkgではパッケージのダウンロードやパッケージ間の依存関係まで判断しません。aptはdpkgのフロントエンドとして機能します。 ですから、一般的にはaptを使う方が良いと思います。 ※aptはapt-get以外にもapt-cacheを含んでいますので、aptと表記しました。
お礼
回答ありがとうございます。 ご指摘どおりdpkgのことで間違いありません。 すみません入力ミスです。 わかりやすい説明をありがとうございました。
お礼
回答ありがとうございます。 >Debianを日頃使っている者の意見としては、 >dpkgはパッケージ管理ソフト。 >apt-getはdpkgを操作するソフト。 >aptitudeや、ほかGUIソフトは、apt-getを操作するソフト。 とてもわかりやすかったです。 頭の中が整理できました、ありがとうございます。