apt-get コマンド

目次

概要

apt-get - パッケージを管理する(Ubuntu系)

コマンドライン

apt-get [OPTIONS] [COMMAND]

対象バージョン

説明

パッケージをインストール・アップグレード・アンインストールします。最初にパッケージ情報をアップデートしておく必要があります。

$ sudo apt-get update               # パッケージ情報をアップデートする
$ sudo apt-get install apache2      # インストールする
$ sudo apt-get upgrade apache2      # アップグレードする
$ sodo apt-get remove apache2       # アンインストールする

コマンド

パッケージ情報

update

すべての取得元のパッケージ情報をアップデートします。他のコマンド実行時に "Unable to locate package..." などのエラーが出たらこのコマンドを実行する必要があります。

$ sudo apt-get update

インストール

install

パッケージをインストールします。

$ sudo apt-get install apache2

下記の様にバージョンを指定することもできます。バージョンの一覧は apt list -a で確認することができます。

$ sudo apt-get install apache2=2.4.58-1ubuntu8.8

--only-upgrade をつけるとインストール済の場合のみにアップグレードします。

$ sudo apt-get install --only-upgrade apache2

--no-upgrade をつけるとインストール済の場合にアップグレードしません。

$ sudo apt-get install --no-upgrade apache2

インストール時にタイムゾーンを確認されることがあります。詳細は後述の タイムゾーンの指定 を参照してください。

reinstall

パッケージを再インストールします。

$ sudo apt-get reinstall apache2

satisfy

指定した依存関係文字列に従ってパッケージをインストールまたはアンインストールします。下記の例では foobar(1.0以上) をインストールし、これらと競合する bazfuzz をアンインストールすることを示しています。

$ sudo apt-get satisfy "foo, bar (>= 1.0)" "Conflicts: baz, fuzz"

download

指定したパッケージのパッケージファイル(*.deb)をダウンロードします。

$ apt-get download apache2

アップグレード

upgrade

インストール済のパッケージをすべてアップグレードします。アップグレードのためにインストール済のパッケージの削除が必要となる場合は処理を中断します。

$ sudo apt-get upgrade

特定のパッケージのみをアップグレードするには install コマンドを用います。

$ apt-get install --only-upgrade apache2

dist-upgrade, full-upgrade

インストール済のパッケージをすべてアップグレードします。アップグレードのためにインストール済のパッケージの削除が必要となる場合は削除します。apt full-upgrade コマンドとほぼ同等です。

$ sudo apt-get dist-upgrade

アンインストール

remove

指定したパッケージをアンインストールします。/etc/apache2/apache2.conf などの設定ファイルは残されます。

$ sudo apt-get remove apache2

purge

指定したパッケージをアンインストールします。/etc/apache2/apache2.conf などの設定ファイルも削除します。

$ sudo apt-get purge apache2

autoremove, auto-remove

他のパッケージの依存関係でインストールされたけれども、必要とするパッケージがすでに削除されているなどの理由で不要となったパッケージを削除します。手動インストールとマークされているパッケージは削除しません。自動インストールとマークされていて、かつ、依存元パッケージが無いものをアンインストールします。自動/手動インストールのマークは apt-mark を参照してください。

$ sudo apt-get autoremove

autopurge

autoremove と同様ですが、/etc/apache2/apache2.conf などの設定ファイルも削除します。

$ sudo apt-get autopurge

表示

changelog

指定したパッケージの変更履歴を表示します。

$ apt-get changelog apache2

Error in the certificate verification.Try installing ca-certificates. のエラーが表示される場合は ca-certificates パッケージをインストールしてください。

$ sudo apt-get install ca-certificates

indextargets

/var/lib/apt/lists にあるインデックスファイルに関する情報を表示します。

$ apt-get indextargets

消去

clean

/var/cache/apt/archives/ 内のキャッシュされたdebファイルをすべて削除します。

$ sudo apt-get clean

autoclean, auto-clean

/var/cache/apt/archives/ 内のキャッシュされたdebファイルの内、古くて不要なdebファイルを削除します。

$ sudo apt-get autoclean

distclean, dist-clean

/var/lib/apt/lists/ 内の不要ファイルを削除します。

$ sudo apt-get distclean

開発

build-dep

指定したパッケージに必要なコンパイラやライブラリなどの開発環境をまとめてインストールします。ソースコード自体は apt-get source でダウンロードします。

$ sudo apt-get build-dep apache2

"E: You must put some 'deb-src' URIs in your sources.list" エラーが表示される場合は /etc/apt/sources.list.d/ubuntu.sourcesdeb-src を加え、apt-get update を実行しておく必要があります。

修正前:Types: deb
修正後:Types: deb deb-src

source

指定したパッケージのソースコードをダウンロードします。

$ apt-get source apache2

"E: You must put some 'deb-src' URIs in your sources.list" エラーが表示される場合は /etc/apt/sources.list.d/ubuntu.sourcesdeb-src を加え、apt-get update を実行しておく必要があります。

修正前:Types: deb
修正後:Types: deb deb-src

その他

check

依存関係が壊れていないかチェックします。

$ sudo apt-get check

markauto

指定したパッケージを依存関係によって自動インストールされたものであるとマークします。purge の対象となります。apt-get ではこのコマンドは非推奨となっており、apt-mark auto コマンドを使用することが推奨されています。

$ sudo apt-get markauto gcc

unmarkauto

指定したパッケージを手動インストールしたものであるとマークします。purge の対象から除外されます。apt-get ではこのコマンドは非推奨となっており、apt-mark manual コマンドを使用することが推奨されています。

$ sudo apt-get markauto gcc

dselect-upgrade

dselect コマンドで指定したパッケージの選択条件に従い、パッケージをインストール・アンインストールしていました。現在ではほとんど使用されていません。

$ sudo apt-get dselect-upgrade

moo

Super Cow Powers を表示します(笑)。イースターエッグと呼ばれる機能ですね。

$ apt-get moo

オプション

-h, --help
ヘルプを表示して終了します。
$ apt-get --help
-v, --version
バージョン情報を表示して終了します。
$ apt-get --version
-c, --config CONFIG_FILE
コンフィグファイルを指定します。
$ sudo apt -c ./my-apt.conf update
-o, --option VARIABLE=VALUE
apt-config dump で表示される設定項目を一時的に変更してコマンドを実行します。設定項目には下記などがあります。
  • APT::Get::Assume-Yes=true : すべての問い合わせに yes と答える
  • APT::Install-Recommends=false : 推奨パッケージはインストールしない
  • Dir::Cache=/tmp/apt-cache : キャッシュディレクトリを指定
$ sudo apt-get -o APT::Get::Assume-Yes=true install package
--no-install-recommends
依存(Depends)パッケージはインストールしますが、推奨(Recommends)パッケージはインストールしません。
$ sudo apt-get install --no-install-recommends apache2
--install-suggests
依存(Depends)パッケージ、推奨(Recommends)パッケージに加えて提案(Suggests)パッケージもインストールします。
$ sudo apt-get install --install-suggests apache2
-d, --download-only
インストールは行わず、/var/cache/apt/archives 配下にパッケージファイルのダウンロードのみを行います。
$ sudo apt-get install --download-only apache2
-f, --fix-broken
壊れた依存関係をチェックし、可能な限り修復します。
$ sudo apt-get install --fix-broken
-m, --ignore-missing, --fix-missing
取得できなかったパッケージがあっても処理を継続します。下記の場合、foo の取得に失敗しても barbaz のインストールは継続します。
$ sudo apt-get install --ignore-missing foo bar baz
--no-download
ダウンロードを行わず、/var/cache/apt/archives にキャッシュされた deb ファイルを用いてインストールします。
$ sudo apt-get install --download-only apache2   # 事前にダウンロードしておく
$ sudo apt-get install --no-download apache2     # ダウンロード済ファイルを用いてインストール
-q, -qq, --quiet
出力を抑制します。-q を指定するとプログレス表示を抑制しログ出力に適した情報のみを表示します。-qq または -q=2 を指定するとさらに出力を抑制します。
$ sudo apt-get install -q apache2
-s, --simulate, ​--just-print, ​--dry-run, ​--recon, ​--no-act
実行をシミュレートします。実際には何も実行しません。
$ apt-get install --simulate apache2
-y, --yes, --assume-yes
すべての [Y/n] の問い合わせに自動的に yes を回答します。
$ sudo apt-get install -y apache2
--assume-no
すべての [Y/n] の問い合わせに自動的に no を回答します。
$ sudo apt-get install --assume-no apache2
--no-show-upgraded
アップグレードするパッケージの一覧の表示を抑制します。
$ sudo apt-get upgrade --no-show-upgraded
-V, --verbose-versions
インストール、アップグレード、アンインストールするパッケージのバージョンを表示します。
$ sudo apt-get install -V apache2
-a, --host-architecture=ARCHITECTURE
クロスビルド環境構築などの目的で異なるアーキテクチャのパッケージを示す際に用います。
$ sudo dpkg --add-architecture arm64
$ sudo apt-get update
$ sudo apt-get build-dep --host-architecture=arm64 libxxxx
-P, --build-profiles=PROFILE
build-dep コマンドでコンパイル環境をインストールする際のビルドプロファイルを指定します。例えば、debian/control ファイルで依存関係が下記の様に定義されている場合、stage1 プロファイルが指定されていない場合のみ baz を依存に含めることになります。
Build-Depends: foo, bar [linux-any], baz <!stage1>
よく用いられるプロファイル名には stage1(最小構成)、pkg.ndebug(デバッグ情報を抜いたもの)、noudeb(インストーラ用パッケージ udebs を除外)、cross(クロスビルド用) などがあります。
$ sudo apt-get build-dep --build-profiles=stage1 apache2
-b, --compile
apt-get source コマンドに指定するとソースコードをダウンロード後、コンパイルまで実行します。
$ sudo apt-get build-dep apache2
$ sudo apt-get source --compile apache2
--ignore-hold
通常、apt-mark hold でホールド(保留)されたパッケージはアップグレードの対象から除外されますが、このオプションを指定した場合はアップグレードの対象となります。
$ sudo apt-get upgrade --ignore-hold
--with-new-pkgs
アップグレード時に必要であれば新規パッケージの追加インストールを許可します。
$ sudo apt-get upgrade --with-new-pkgs
--no-upgrade
インストール時、該当パッケージや依存パッケージのアップグレードを行いません。
$ sudo apt-get install --no-upgrade apache2
--only-upgrade
アップグレードのみを行います。新規インストールは行いません。
$ sudo apt-get install --only-upgrade apache2
--allow-downgrades
必要に応じてパッケージのダウングレードを許可します。
$ sudo apt-get upgrade --allow-downgrades
--allow-remove-essential
必須(Essential: yes)とマークされた必須パッケージの削除を許可します。
$ sudo apt-get remove --allow-remove-essential libc6
--allow-change-held-packages
apt-mark hold で保留(Hold)状態にされたパッケージの変更を許可します。
$ sudo apt-get upgrade --allow-change-held-packages
--force-yes
危険な操作を含むすべての確認に対して強制的に Yes を回答します。このオプションは現在では非推奨となっており、代わりに後述の --allow-* を使用することが推奨されています。
$ sudo apt-get remove --force-yes foo
--print-uris
パッケージの取得元 URI を表示します。表示するのみで実際のインストールは行いません。
$ apt-get install --print-uris apache2
--purge
パッケージを削除する際に /etc 配下などの設定ファイルも削除します。apt-get purge コマンドと同等です。
$ sudo apt-get remove --purge apache2
--reinstall
パッケージを再インストールします。apt-get reinstall コマンドと同等です。
$ sudo apt-get install --reinstall apache2
--list-cleanup / --no-list-cleanup
update を行う際に既存のキャッシュをすべてクリアします。これはデフォルトの動作です。逆にクリアしたくない場合は --no-list-cleanup を指定します。
$ sudo apt-get update --no-list-cleanup
-S, --snapshot=SNAPSHOT
apt-get update 実行時、https://snapshot.ubuntu.com/ubuntu/YYYYMMDDTHHMMSSZ/ から SNAPSHOT で指定した日時時点のパッケージ情報を取得します。開発環境と本番環境で参照するパッケージ情報の同期をとりたい場合に有効です。
$ sudo apt-get update --snapshot=20250101T000000Z
-t, --target-release, --default-release
ターゲットリリース(stable, testing など)を指定します。
$ sudo apt-get install --target-releast testing mypkg
--trivial-only
trivial は「微小な」を意味します。依存関係の変更、既存パッケージの削除、新規パッケージの追加を伴わない単純なアップグレードのみを行います。
$ sudo apt-get upgrade --trivial-only
--mark-auto
インストールしたパッケージを手動インストールではなく、自動インストールとしてマークします。apt-mark コマンドも参照してください。
$ sudo apt-get install --mark-auto hello
--no-remove
パッケージの削除が必要となる場合はなにも実行せず終了します。
$ sudo apt-get install --no-remove apache2
--auto-remove, --autoremove
自動インストールとマークされていて、他のパッケージに依存していないパッケージを削除します。apt-get autoremove コマンドと同等です。
$ sudo apt-get remove --auto-remove
--only-source
apt-get source コマンドは必要に応じてバイナリパッケージもダウンロードすることがありますが、このオプションはそれを抑制し、ソースコードのみのダウンロードを行います。
$ apt-get source --only-source hello
--diff-only, --dsc-only, --tar-only
apt-get source でソースを取得する際、コミュニティが開発するオリジナルソースから Debian による改造部分のみの情報をダウンロードします。
$ apt-get source --diff-only hello
--arch-only
apt-get build-dep 実行時、アーキテクチャに依存するビルド依存関係の処理のみを行います。
$ sudo apt-get build-dep --arch-only hello
--indep-only
apt-get build-dep 実行時、アーキテクチャに依存いないビルド依存関係の処理のみを行います。
$ sudo apt-get build-dep --arch-only hello
--allow-unauthenticated
署名が有効ではないパッケージのインストールを許可します。評価などで未署名のパッケージをインストールする際などに用います。
$ sudo apt-get install --allow-unauthenticated mypkg
--allow-insecure-repositories
署名されていないリポジトリからの更新やインストールを許可します。
$ sudo apt-get install --allow-insecure-repositories mypkg
--allow-releaseinfo-change
apt-get update 実行時、Release 情報に変更があった場合でもパッケージ情報のアップデートを継続します。
$ sudo apt-get update --allow-releaseinfo-change
--show-progress
インストールなどの作業中に [Progress: 40%] などの進捗情報を表示します。
$ sudo apt-get install --show-progress apache2
--with-source filename
apt-get update でキャッシュしたメタ情報に FILENAME を加えて処理を実行します。複数回指定できます。FILENAME には *.deb, *.dsc, *.changes, Sources, Packages およびこれらを含むディレクトリを指定できます。
$ sudo apt-get install --with-source my.example_Packages.xz install mypkg
-e MODE, --error-on=MODE
apt-get update 実行時に一時的エラーが発生した場合の動作を指定します。MODE には persistent(エラーがあっても継続する:デフォルト)、any(何かエラーがあれば終了する) のいずれかを指定します。
$ sudo apt-get update --error-on=any
-U, --update
インストールなどを実行する前に apt-get update を実行します。
$ sudo apt-get --update install apache2

タイムゾーンの指定

システムにまだタイムゾーンが設定されていない場合、apt-get install を行うとタイムゾーンの選択画面が表示されます。日本時刻(JST)であれば Asia(5)/Tokyo(78) を選択します。

Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by
presenting a list of cities, representing the time zones in which they are located.

  1. Africa   3. Antarctica  5. Asia      7. Australia  9. Indian    11. Etc
  2. America  4. Arctic      6. Atlantic  8. Europe     10. Pacific  12. Legacy
Geographic area: 5

Please select the city or region corresponding to your time zone.

  1. Aden      16. Brunei       31. Hong_Kong    46. Kuala_Lumpur  61. Pyongyang      76. Tel_Aviv
  2. Almaty    17. Chita        32. Hovd         47. Kuching       62. Qatar          77. Thimphu
  3. Amman     18. Choibalsan   33. Irkutsk      48. Kuwait        63. Qostanay       78. Tokyo
  4. Anadyr    19. Chongqing    34. Istanbul     49. Macau         64. Qyzylorda      79. Tomsk
  5. Aqtau     20. Colombo      35. Jakarta      50. Magadan       65. Riyadh         80. Ulaanbaatar
  6. Aqtobe    21. Damascus     36. Jayapura     51. Makassar      66. Sakhalin       81. Urumqi
  7. Ashgabat  22. Dhaka        37. Jerusalem    52. Manila        67. Samarkand      82. Ust-Nera
  8. Atyrau    23. Dili         38. Kabul        53. Muscat        68. Seoul          83. Vientiane
  9. Baghdad   24. Dubai        39. Kamchatka    54. Nicosia       69. Shanghai       84. Vladivostok
  10. Bahrain  25. Dushanbe     40. Karachi      55. Novokuznetsk  70. Singapore      85. Yakutsk
  11. Baku     26. Famagusta    41. Kashgar      56. Novosibirsk   71. Srednekolymsk  86. Yangon
  12. Bangkok  27. Gaza         42. Kathmandu    57. Omsk          72. Taipei         87. Yekaterinburg
  13. Barnaul  28. Harbin       43. Khandyga     58. Oral          73. Tashkent       88. Yerevan
  14. Beirut   29. Hebron       44. Kolkata      59. Phnom_Penh    74. Tbilisi
  15. Bishkek  30. Ho_Chi_Minh  45. Krasnoyarsk  60. Pontianak     75. Tehran
Time zone: 78

apt-get 実行時にタイムゾーンを確認されないようにするには、あらかじめ下記を実行しておきます。

echo "tzdata tzdata/Areas select Asia" | sudo debconf-set-selections
echo "tzdata tzdata/Zones/Asia select Tokyo" | sudo debconf-set-selections
DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata

依存関係

パッケージの依存関係には次の種別があります。

あるパッケージが依存しているパッケージの一覧を表示するには下記を実行します。

$ apt depends package

あるパッケージが依存されているパッケージの一覧を表示するには下記を実行します。

$ apt rdepends package