apt-get コマンド
- 概要
- コマンドライン
- 対象バージョン
- 説明
- コマンド
- オプション
- タイムゾーンの指定
- 依存関係
- 関連項目
- リンク
概要
apt-get - パッケージを管理する(Ubuntu系)コマンドライン
apt-get [OPTIONS] [COMMAND]
対象バージョン
- Ubuntu 24.04 : apt 2.8.3
説明
パッケージをインストール・アップグレード・アンインストールします。最初にパッケージ情報をアップデートしておく必要があります。
$ 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
指定した依存関係文字列に従ってパッケージをインストールまたはアンインストールします。下記の例では foo と bar(1.0以上) をインストールし、これらと競合する baz と fuzz をアンインストールすることを示しています。
$ 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.sources に deb-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.sources に deb-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の取得に失敗してもbarやbazのインストールは継続します。$ 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
依存関係
パッケージの依存関係には次の種別があります。
PreDepends: 前依存。このパッケージが依存しているパッケージ。先にインストールする必要がある。Depends: 依存。このパッケージが依存しているパッケージ。同時にインストールする必要がある。Recommends: 推奨。通常インストールされるが--no-install-recommendsオプションを指定するとインストールされない。Suggests: 提案。通常インストールされないが--install-suggestsオプションを指定するとインストールされる。Conflicts: 競合。このパッケージと競合するパッケージ。Replaces: 置換。このパッケージが置き換え版となるパッケージ。Breaks: 破壊。このパッケージが破壊してしまうパッケージ。Provides: 提供。このパッケージがすべての機能を包含して提供することが可能なパッケージ。Enhances: 強化。提案(Suggests)されているパッケージ。
あるパッケージが依存しているパッケージの一覧を表示するには下記を実行します。
$ apt depends package
あるパッケージが依存されているパッケージの一覧を表示するには下記を実行します。
$ apt rdepends package