$ apt
Advanced Packaging Tool
Debian 系 Linux (Ubuntu、Linux Mint)で使われるパッケージ管理システム。
パッケージのインストール、アップデート、検索、削除を行うことができる。依存関係のあるパッケージも自動で解決される。
インストール中にプログレスバーが表示されるなどのユーザーライクな設計によって開発されているため、日常的に使用するパケージ管理に適している。
一方で、従来から存在する $ apt-get
コマンドと比べて比較的新しいツールであるため、出力形式などが今後のアップデート時に変更される可能性がある。
そのため、シェルスクリプトでは依然として枯れた技術である $ apt-get
を使用することが推奨されている。
また、一部の高度な操作(例:$ apt-get source
や $ apt-get build-dep
など)は $ apt-get
にしか存在しないことがある。
日常的なパッケージ管理では $ apt
が推奨。
シェルスクリプトでは $ apt-get
が推奨。
$ apt install
$ sudo apt install パッケージ名
$ apt remove
$ sudo apt remove パッケージ名
$ apt purge
コマンドと異なり、パッケージのみが削除され、設定ファイルは残る。
$ apt purge
$ sudo apt purge パッケージ名
$ apt update
リポジトリから最新のパッケージ情報を取得(fetch)する。インストール済みのパッケージはアップデートされない。
$ sudo apt update
$ apt upgrade
$ apt update
で更新したパッケージ情報をもとに、インストール済みのファイルをアップデートする。
$ sudo apt upgrade
$ apt full-upgrade
インストールされている全てのパッケージを最新バージョンにアップデートし、依存関係の解決も行う。
$ apt upgrade
と異なり、新しいバージョンのパッケージをインストールするために、古いパッケージや依存関係が削除される場合がある。
$ sudo apt full-upgrade
$ apt upgrade
では、既存のパッケージが削除されることはない。
$ apt full-upgrade
は必要に応じて依存関係を変更する。
$ apt autoremove
/ $ apt clean
$ apt autoremove
で依存関係で不要になったパッケージファイルを削除し、$ apt clean
では、キャッシュされた /var/cache/apt/archives/
の ***.deb
ファイルを削除する。
$ sudo apt autoremove
$ sudo apt clean
$ apt search
$ apt search パッケージ名
$ apt list
$ apt list
$ apt list --installed
$ apt show
$ apt show パッケージ名
$ apt-get
との比較
操作 | $ apt-get |
$ apt |
---|---|---|
パッケージのインストール | $ apt-get install |
$ apt install |
リポジトリの更新 | $ apt-get update |
$ apt update |
パッケージのアップデート | $ apt-get upgrade |
$ apt upgrade |
パッケージのアップデート (依存関係の解決を含む) |
$ apt-get dist-upgrade distribution upgrade |
$ apt full-upgrade |
パッケージの削除 | $ apt-get remove |
$ apt remove |
パッケージの検索 | $ apt-cache search |
$ apt search |
システムの情報表示 | - |
$ apt list / $ apt show
|
リポジトリの設定
パッケージのインストール元であるリポジトリの URL などは
/etc/apt/sources.list
-
/etc/apt/sources.list.d/
ディレクトリ配下の***.list
ファイル
で管理される。
Ubuntu では、公式パッケージのリポジトリを /etc/apt/sources.list
で管理し、サードパーティ製のパッケージは /etc/apt/sources.list.d/
ディレクトリで管理される。
以下のような形式のテキストファイルになっている。
deb URL バージョン 種類
deb-src URL バージョン 種類
deb
: バイナリ形式で取得(通常のインストール)
deb-src
: ソースコードで取得(ダウンロードのみ)
種類
: main
(公式)、universe
(コミュニティによってサポート)、restricted
、multiverse
、contrib
、non-free
$ dpkg
$ apt
同様に、Debian 系 Linux(Ubuntu、Linux Mint) で利用されるパッケージ管理コマンド。
パッケージを直接ダウンロードする機能はなく、手動でダウンロードした ***.deb
ファイルをインストールするために利用される。
依存関係を自動的に解決しない ため、依存するライブラリやパッケージを手動でインストールする必要がある。
$ apt
よりも低級 な操作になるため、日常的に使用されるというよりも、トラブルシューティング、その他特殊な状況でのみ利用される。
$ dpkg -i
$ dpkg -i パッケージ.deb
$ dpkg --install パッケージ.deb
$ dpkg -r
$ dpkg -r パッケージ名
$ dpkg --remove パッケージ名
$ dpkg -P
コマンドと異なり、パッケージのみが削除され、設定ファイルは残る。
$ dpkg -P
$ dpkg -P パッケージ名
$ dpkg --purge パッケージ名
$ dpkg -l
$ dpkg -l
$ dpkg --list
$ dpkg -S
$ dpkg -S ファイル名
$ dpkg --search ファイル名
$ dpkg -L
$ dpkg -L パッケージ名
$ dpkg --listfiles パッケージ名
$ dpkg -s
$ dpkg -s パッケージ名
$ dpkg --status パッケージ名
$ dpkg -C
インストール時のエラーによって、部分的にインストールされてしまったパッケージを検索することができる。
$ dpkg -C
$ dpkg --audit
$ dpkg-reconfigure
$ dpkg-reconfigure パッケージ名
$ yum
Yellowdog Updater, Modified
RPM ベースの Linux (Red Hat Enterprise Linux、CentOS、Fedora)で利用されるパッケージ管理ツール。
依存関係のあるパッケージも自動で解決される。
また、グループ単位でパッケージをインストールすることができる。
$ dnf
は $ yum
よりも新しいコマンドで、依存関係の解決や速度の改善などがより高機能になっている。
後継版の $ dnf
コマンドは、ほとんど $ yum
と同じように使える
$ yumdownloader
***.rpm
ファイルをダウンロードする。インストールまでは行わない。
$ yumdownloader パッケージ名
$ yumdownloader --resolve パッケージ名
$ yum install
$ yum install パッケージ
$ yum groupinstall
/ $ yum groups install
$ yum groupinstall グループ名
$ yum groups install グループ名
$ yum remove
/ $ yum erase
$ yum remove パッケージ名
$ yum erase パッケージ名
$ yum check-update
/ $ yum list updates
$ yum -check-update
$ yum list updates
$ yum update
$ yum update
$ yum update パッケージ
$ yum info
$ yum info パッケージ名
$ yum list
$ yum list
$ yum list installed
$ yum list
$ yum groups list
$ yum groups list
$ yum search
$ yum search キーワード
$ yum repolist
$ yum repolist
リポジトリの設定
/etc/yum.repos.d/
ディレクトリ配下にある ***.repo
ファイルで管理される。
設定
/etc/yum.conf
ファイルで管理される。
$ rpm
Red Hat Package Manager
Red Hat 系ディストリビューション(RHEL、CentOS、Fedora)で利用されるパッケージ管理コマンド。
RPM 形式のパッケージは、特定のソフトウェアをインストールするためのバイナリファイルやスクリプトがまとめられたアーカイブ形式のファイル(***.rpm
)になっている。
依存関係を自動的に解決しない ため、依存するライブラリやパッケージを手動でインストールする必要がある。
$ yum
よりも低級 な操作になるため、日常的に使用されるというよりも、トラブルシューティング、その他特殊な状況でのみ利用される。
$ rpm -i
$ rpm -i パッケージ.rpm
$ rpm --install パッケージ.rpm
$ rpm -ivh パッケージ.rpm
$ rpm -i --test パッケージ.rpm
$ rpm -U
パッケージがインストールされていない場合、インストールもしてくれる。
$ rpm -U パッケージ.rpm
$ rpm --upgrade パッケージ.rpm
$ rpm -F
指定したパッケージがインストールされていない場合、何も行わない。
$ rpm -F パッケージ.rpm
$ rpm --freshen パッケージ.rpm
$ rpm -e
$ rpm -e パッケージ名
$ rpm --erase パッケージ名
$ rpm -q
$ rpm -q パッケージ
$ rpm --query パッケージ
-a
/ --all
: インストール済みのすべてのパッケージを表示
-f ファイル名
/ --file ファイル名
: 指定したファイルが含まれるパッケージ名を表示
-i
/ --info
: パッケージの詳細情報を表示
-l
/ --list
: パッケージに含まれるファイル一覧を表示
-R
/ --requires
: パッケージが依存するパッケージを表示
-p
/ --package
: インストールの有無に関わらず、指定したパッケージの情報を表示
$ rpm -i パッケージ # パッケージのインストール
$ rpm -q -i パッケージ # パッケージの詳細情報を表示
$ rpm -qi パッケージ # パッケージの詳細情報を表示
$ rpm -v
詳細情報を表示する。
$ rpm -iv パッケージ.rpm
$ rpm -h
/ $ rpm --hash
進行状況を #
で表示してくれる。
$ rpm -ih パッケージ.rpm
$ gem
Ruby で記述されたライブラリを Gem と呼び、Ruby のパッケージ管理システムを RubyGems と言う。
RubyGems を操作するためには $ gem
コマンドを使用する。$ gem
コマンドを利用することで Gem のインストール、更新、検索、アンイントールが可能。
デフォルトで公式リポジトリ(RubyGems.org)が使用される。
$ gem install
$ gem install Gem名
$ gem install cocoapods
$ gem list
$ gem list
$ gem uninstall
$ gem uninstall Gem名
$ gem update
$ gem update
引数に特定の Gem 名を与えると、指定された Gem のみアップデートを行う。
$ gem update Gem名
$ gem search
公式の Gem リポジトリである RubyGems.org からキーワードを含むライブラリ、パッケージを検索する。
$ gem search 検索ワード