ウェブサイト検索

APTと適性とは何ですか?それらの本当の違いは何ですか?


Aptitudeapt-get は、パッケージ管理を処理する人気のあるツールの 2 つです。どちらのツールも、インストール、削除、検索など、パッケージに関するあらゆる種類のアクティビティを処理できます。ただし、両方のツールには依然として違いがあり、ユーザーが一方を他方よりも好むようになります。これら 2 つのツールを別々に検討する必要がある相違点は何なのかが、この記事の範囲です。

アプトとは

Apt または Advanced Packaging Tool は、ソフトウェアのインストールと削除を適切に処理する無料のオープン ソース ソフトウェアです。当初、これは Debian の .deb パッケージ用に設計されましたが、RPM Package Manager と互換性があるようになりました。

Apt は GUI を持たない完全なコマンドラインです。インストールするパッケージの名前を指定してコマンドラインから呼び出すと、依存関係のリストとともに '/etc/apt/sources.list' で指定されたソースの構成済みリスト内でそのパッケージが検索されます。そのパッケージを検索して並べ替え、現在のパッケージとともに自動的にインストールするため、ユーザーは依存関係のインストールを心配する必要がなくなります。

柔軟性が高く、ユーザーはさまざまな構成を簡単に制御できます。たとえば、パッケージを検索するための新しいソースの追加、apt ピンニング、つまりシステムのアップグレード中に使用できないパッケージにマークを付けることで、現在のバージョンをインストールされる最終バージョンにすることができます。 「スマート」 アップグレード、つまり最も重要なパッケージをアップグレードし、重要性の低いパッケージはそのまま残します。

適性とは何ですか?

Aptitude は、機能にユーザー インターフェイスを追加する高度なパッケージング ツールのフロントエンドであり、ユーザーが対話的にパッケージを検索し、インストールまたは削除できるようにします。当初 Debain 用に作成された Aptitude は、その機能を RPM ベースのディストリビューションにも拡張します。

そのユーザー インターフェイスは、GUI で一般的に見られるさまざまな要素を追加する ncurses ライブラリに基づいています。そのハイライトの 1 つは、apt-get のコマンドライン引数のほとんどをエミュレートできることです。

全体として、Aptitude は低レベルの詳細を抽象化する高レベルのパッケージ マネージャーであり、テキストベースの対話型 UI モードとコマンド ラインの非対話型モードの両方で動作できます。

APT と Aptitude の使用法を実際の例とともに知りたい場合は、次の記事を参照してください。

  1. APT-GET と APT-CACHE に関する 25 の役立つ例を学ぶ
  2. Aptitude と Dpkg を使用して Linux パッケージ管理を学ぶ

APTとAptitudeの違いは何ですか?

主な違いは、Aptitude が高レベルのパッケージ マネージャーであるのに対し、APT は他の高レベルのパッケージ マネージャーで使用できる低レベルのパッケージ マネージャーであることです。これら 2 つのパッケージ マネージャーを区別する主な点は次のとおりです。

  1. Aptitudeapt-get よりも機能が豊富で、apt-get と、apt-markapt などの他のバリアントの機能が統合されています。 - キャッシュです。

apt-get はパッケージのインストール、アップグレード、システム アップグレード、パッケージの削除、依存関係の解決などをすべて処理しますが、Aptitude はapt-mark の機能を含め、apt よりも多くの処理を処理します。 apt-cache つまり、インストールされているパッケージのリストでパッケージを検索する、パッケージを自動または手動でインストールするようにマークする、アップグレードできないようにパッケージを保持するなどです。

  1. apt-get には UI がありませんが、Aptitude にはテキストのみのインタラクティブな UI があります。

下位レベルのパッケージ マネージャーである Apt-get はコマンド ラインのみに制限されていますが、上位レベルのツールである Aptitude には、デフォルトのテキストのみの対話型インターフェイスと、必須を入力することによるコマンド ライン操作のオプションがあります。コマンド。

  1. Aptitude は apt-get よりも優れたパッケージ管理を備えています

パッケージのインストール、削除、競合解決が関係する多くの状況では、apt-get ではなく Aptitude の価値が証明されます。状況には次のようなものがあります。

1. インストールされているパッケージを削除すると、Aptitude は未使用のパッケージを自動的に削除しますが、apt-get はユーザーが次のいずれかの方法でこれを明示的に指定する必要があります。 '—auto-remove' の追加オプション、または 'apt-get autoremove' を指定します。4

2. 特定のアクションがブロックされている理由、または特定のアクションを実行する必要がある理由、または実行すべきではない理由をさらに調査するために、Aptitude は 'why'' を提供します。なぜダメなのかコマンド。

いいね: Aptitude では、インストールされているパッケージのリストを調べ、提案されたパッケージに依存関係があるかどうか、またはその依存関係のいずれかがそのパッケージを示唆しているかどうかを確認することで、特定のパッケージをインストールする理由を見つけることができます。 。

$ aptitude why yaws-wiki
i   doc-base  Suggests   dhelp | dwww | doc-central | yelp | khelpcenter4
p   dwww      Depends    apache2 | httpd-cgi
p   yaws      Provides   httpd-cgi
p   yaws      Suggests   yaws-wiki

ここと同様に、'yaws-wiki' という名前のパッケージをインストールする理由を検索して、仮想パッケージ を提供する依存関係 (yaws) によって提案されることを確認しました。 >(httpd-cgi) にはパッケージ (dwww) が依存関係があり、パッケージ (dwww) という名前のインストール済みパッケージの 1 つによって提案されています。ドキュメントベース'

この機能は apt-get にはありません。

3. apt-get は、メッセージを含むパッケージのインストールまたは削除に関するアクションが競合する場合にはおそらく機能しなくなりますが、Aptitude は次のことを提案できます。その矛盾を取り除くために考えられる措置。

Aptitude は、システム上だけでなくリポジトリ全体上のほぼすべてのパッケージを検索するために使用できる強力な検索を提供します。

apt-get はパッケージを検索するために別の apt のバリアント、つまり apt-cache を必要としますが、Aptitude はインストールされているか存在するパッケージを検索するためのはるかに簡単で効率的な方法を提供します。リポジトリにありますが、まだインストールされていません。

apt-cache と Aptitude を使用したパッケージの検索

$ apt-cache search 'python' | head -n4
kate - powerful text editor
kcachegrind-converters - format converters for KCachegrind profiler visualisation tool
kig - interactive geometry tool for KDE
python-kde4 - Python bindings for the KDE Development Platform

$ aptitude search 'python' | head -n4
i   bpython                         - fancy interface to the Python interpreter 
p   bpython-gtk                     - fancy interface to the Python interpreter 
p   bpython-urwid                   - fancy interface to the Python interpreter 
p   bpython3                        - fancy interface to the Python3 interpreter

ここで、デフォルトではapt-cacheaptitude の両方がリポジトリ内のパッケージのリスト全体からパッケージを検索しますが、aptitude の出力には、パッケージがシステムにインストールされているかどうかが表示されます。パッケージごとのフラグを指定するのではなく、ここではパッケージは存在するがインストールされていないことを示す 'p' と、パッケージがインストールされていることを示す 'i' を指定します。 -cache は、パッケージがインストールされているかどうかを通知せずに、パッケージとその 1 行の詳細をリストするだけです。

Aptitude を使用した高度なパッケージ検索のその他の例

1. パッケージ名に 'python2.7'、説明に '2.7' が含まれるリポジトリ内のパッケージを検索します。

$ aptitude search '~npython2.7 ~d2.7'
p   idle-python2.7                   - IDE for Python (v2.7) using Tkinter       
i   libpython2.7                     - Shared Python runtime library (version 2.7
p   libpython2.7:i386                - Shared Python runtime library (version 2.7
p   libpython2.7-dbg                 - Debug Build of the Python Interpreter (ver
p   libpython2.7-dbg:i386            - Debug Build of the Python Interpreter (ver
i A libpython2.7-dev                 - Header files and a static library for Pyth
p   libpython2.7-dev:i386            - Header files and a static library for Pyth
i   libpython2.7-minimal             - Minimal subset of the Python language (ver
p   libpython2.7-minimal:i386        - Minimal subset of the Python language (ver
i   libpython2.7-stdlib              - Interactive high-level object-oriented lan
p   libpython2.7-stdlib:i386         - Interactive high-level object-oriented lan
p   libpython2.7-testsuite           - Testsuite for the Python standard library 
i   python2.7                        - Interactive high-level object-oriented lan
p   python2.7:i386                   - Interactive high-level object-oriented lan
p   python2.7-dbg                    - Debug Build of the Python Interpreter (ver
p   python2.7-dbg:i386               - Debug Build of the Python Interpreter (ver
i A python2.7-dev                    - Header files and a static library for Pyth
p   python2.7-dev:i386               - Header files and a static library for Pyth
p   python2.7-doc                    - Documentation for the high-level object-or
p   python2.7-examples               - Examples for the Python language (v2.7)   
i   python2.7-minimal                - Minimal subset of the Python language (ver
p   python2.7-minimal:i386           - Minimal subset of the Python language (ver

ここで、'~n' は名前を示し、'~d' は説明を示します。同じコマンドの他の形式は次のとおりです。

aptitude search '?name(python2.7) ?description(2.7)'
その他のフラグには次のようなものがあります。
  1. ~i または ?installed(): インストールされているパッケージのリストのみでパッケージを検索します。
  2. ~U または ~Upgradable: 利用可能な最新バージョンにアップグレード可能なすべてのパッケージをリストします。
  3. ~E または ?Essential(): インストールされているか使用可能な必須パッケージです。
$ aptitude versions '?Upgradable' | head -n 12
Package apache2:
ph  2.4.7-1ubuntu4                                trusty                    500 
ph  2.4.7-1ubuntu4.5                              trusty-security           500 
ih  2.4.7-1ubuntu4.8                                                        100 
ph  2.4.7-1ubuntu4.9                              trusty-updates            500 

Package apache2-bin:
p A 2.4.7-1ubuntu4                                trusty                    500 
p A 2.4.7-1ubuntu4.5                              trusty-security           500 
i A 2.4.7-1ubuntu4.8                                                        100 
p A 2.4.7-1ubuntu4.9                              trusty-updates            500 

ここに示す 3 つのパッケージの短いリストには、インストールされているバージョン ('i' で示されます) と、存在するアップグレード可能なバージョン ('p' で示されます) が示されています。

2. 特定のサービスを提供するすべてのパッケージの検索

smtp サービスを提供するすべてのパッケージを検索するには:

$ aptitude search '?provides(smtp)'
p   libghc-smtpclient-dev            - Simple Haskell SMTP client library        
p   libghc-smtpclient-dev:i386       - Simple Haskell SMTP client library        
p   libghc-smtpclient-prof           - Simple Haskell SMTP client library; profil
p   libghc-smtpclient-prof:i386      - Simple Haskell SMTP client library; profil
p   syslog-ng-mod-smtp               - Enhanced system logging daemon (SMTP plugi
p   syslog-ng-mod-smtp:i386          - Enhanced system logging daemon (SMTP plugi

3. 特定のパッケージを示唆するすべてのパッケージの検索

ここでは、「gcc」 パッケージを提案するすべてのパッケージをリストします。

$ aptitude search '~DSuggests:gcc' | head -n10
p   bochs                           - IA-32 PC emulator                         
p   bochs:i386                      - IA-32 PC emulator                         
p   cpp-4.4                         - GNU C preprocessor                        
p   cpp-4.4:i386                    - GNU C preprocessor                        
p   cpp-4.6                         - GNU C preprocessor                        
p   cpp-4.6:i386                    - GNU C preprocessor                        
p   cpp-4.7                         - GNU C preprocessor                        
p   cpp-4.7:i386                    - GNU C preprocessor                        
p   cpp-4.7-arm-linux-gnueabi       - GNU C preprocessor                        
p   cpp-4.7-arm-linux-gnueabi:i386  - GNU C preprocessor 

結論

したがって、ほとんどの場合、Aptitude の構文は apt-get の構文とほぼ同じに保たれ、apt-get のユーザーが Aptitude に移行する際の苦痛を軽減します。 , しかし、これに加えて、Aptitude には多くの強力な機能が統合されており、Aptitude が選ばれるのです。私たちが強調したこれらの違いとは別に、これら 2 つのパッケージ マネージャーの間に他の興味深い違いを見つけた場合は、コメントで言及してください。