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