web-dev-qa-db-ja.com

便利なapt(dpkg)コマンド

Apt-*、dpkg、またはaptitudeを含むあまり知られていないが有用なaptコマンドを投稿してください。

9
Gödel

私がよく使うコマンド:

依存関係と逆依存関係を表示するには:

apt-cache [--important] [--installed] [--recurse] depends $package
apt-cache rdepends $package

パッケージ、すべての自動削除パッケージ、および関連するすべての構成ファイルを削除するには:

Sudo apt-get --purge --auto-remove purge $package

実際のapt構成オプションを表示するには:

apt-config dump | less

コマンドラインでオプションを変更するには

$ apt-config dump | grep -i recommend
APT::Install-Recommends "1";
$ Sudo apt-get -o APT::Install-Recommends="0" install $package

これは、コマンドラインでAPTオプションを指定する例であり、推奨パッケージのインストールを回避するために、次を使用できます。

Sudo apt-get --no-install-recommends $package

すべてのローカル/廃止パッケージを表示するには:

aptitude search ~o

削除されたパッケージと残りの構成を表示するには:

aptitude search ~c

そしてそれらを削除する

Sudo aptitude purge ~c

インストールされているすべてのパッケージのリストを取得するには(dpkg -lが切り捨てられた列を出力する場合があります)

dpkg --get-selections | awk '{ print $1 }'

または

dpkg-query -Wf '${Package}\n'  # other fields available, see man page

分解するには、パッケージを変更してからリアセンブリします

dpkg-deb -x file.deb ./dir
cd dir 
dpkg-deb -e ../file.deb
# apply your modification, then... 
cd ..
dpkg-deb -b dir file-new.deb
7
enzotib

私がよく使う2つは:-

apt-get autoremove <packagename>

これにより、パッケージと未使用の依存関係が削除されます。これは、アプリを試してみる必要がある場合に役立ちます。不要な場合は、不要なものも削除します。

dpkg -S /path/to/file

これにより、ファイルがインストールされたパッケージがわかります。

最後に、もう1つ..

dpkg -l <packagename> | grep ^ii

パッケージをリストしますが、ステータスiiのパッケージのみがインストールされていることを意味するため、削除したものは表示されません。

インストールされていないファイル(dpkg -S、ただしインストールされていないパッケージ)のパッケージ名を取得する場合は、apt-fileをインストールして実行します。

apt-file search /path/to/file
4
popey

パッケージの変更ログを表示する

$ aptitude changelog <pkgname>

例:

$ aptitude changelog Sudo
sudo (1.7.0-1ubuntu2.4) karmic-security; urgency=low

  * SECURITY UPDATE: properly handle multiple PATH variables when using
    secure_path in env.c
    - Adapted http://www.Sudo.ws/repos/Sudo/raw-rev/a09c6812eaec
    - CVE-2010-1646
...
3
Gödel

Apt-fileをインストールし、Sudo apt-file updateを実行します。インストールされていないパッケージ内のファイルを検索できるようになりました。

Ubuntuの他のバージョンのパッケージに関する情報を知る必要がある場合は、devscriptsパッケージにあるrmadisonも役立ちます。引数としてパッケージ名を指定すると、そのパッケージのどのバージョンが現在のすべてのUbuntuバージョンに存在し、どのリポジトリセクションにあるかがわかります。

例:

[bnrubin@server:~/]$ rmadison cowsay
    cowsay |     3.03-8 | dapper/universe | source, all
    cowsay |     3.03-9 | hardy/universe | source, all
    cowsay |   3.03-9.2 | jaunty/universe | source, all
    cowsay |   3.03-9.2 | karmic/universe | source, all
    cowsay |   3.03-9.2 | lucid/universe | source, all
    cowsay | 3.03+dfsg1-2 | maverick/universe | source, all
    cowsay | 3.03+dfsg1-2 | natty/universe | source, all
3
Benjamin Rubin

リストコマンドを取得するには、「apt-」で始まり、次のようにします。ターミナルを開き、「apt-」と入力してTabキーを2回押すと、「apt-」で始まるすべてのコマンドが一覧表示されます。

サンプル出力:

apt-add-repository    apt-extracttemplates  apt-key
apt-cache             apt-file              apt-mark
apt-cdrom             apt-ftparchive        apt-sortpkgs
apt-config            apt-get 

詳細情報を取得するには、その特定のコマンドのマニュアルページを確認できます

例:man apt-get

1
aneeshep

私は3種類のパッケージを考えるのが好きです。

  • システムパッケージ(必須パッケージまたは優先度標準以上のパッケージ)
  • ユーザーパッケージ(優先度がオプションまたは追加の手動インストールパッケージ)
  • 依存関係と推奨事項(自動インストールパッケージ/システムまたはユーザーパッケージ以外のすべて)

すべての「システムパッケージ」を表示するには、使用できます

aptitude search '(~pstandard|~pimportant|~prequired|~E)'

私はそれらをすべてインストールし、手動でインストール済みとしてマークするのが好きです。

aptitude install '(~pstandard|~pimportant|~prequired|~E)!~i'
aptitude unmarkauto '(~pstandard|~pimportant|~prequired|~E)~i~M'

すべての「ユーザーパッケージ」を表示するには

aptitude search '~i!~M!(~pstandard|~pimportant|~prequired|~E)'

このリストには、必要なことがわかっているパッケージのみが含まれている必要があります。他のすべてのパッケージはおそらく単なる依存関係であるか、他のパッケージの推奨であり、自動的にインストールされたものとしてマークできます

aptitude markauto libsomething

aptitudeの検索用語リファレンス を見てください
必須、必須、重要、標準、オプション、または追加パッケージとは何ですか? 背景情報。

1
Dario Seidl
  • 他のパッケージを削除するか、カーネルのアップグレードであるため、元に戻さないパッケージをアップグレードします。

    Sudo apt-get dist-upgrade
    
  • パッケージとその構成を削除します。

    Sudo apt-get purge package
    
  • セクション、バージョン、依存関係、メンテナー、説明など、パッケージデータベースで認識されているパッケージの詳細を表示します。

    apt-cache show package
    
  • インストール済みパッケージ内のファイルを一覧表示する

    dpkg -L pkg
    
  • すべてのパッケージをアップグレードする

    Sudo apt-get upgrade
    
0
PinoSan