パッケージ管理したい(apt)
$ apt
aptは、.deb形式のパッケージを管理するコマンドです。
Debian系のLinuxで利用されます。
apt-getとapt-cacheの機能を統合したコマンドで、対話シェルでの利用が推奨されています。
注釈
CI/CDやDockerfileなど、対話的でないシェルスクリプトでは、まだapt-getやapt-cacheを使うほうがよいみたいです。
パッケージを検索したい(apt search)
$ apt search パッケージ名
$ apt search ripgrep
# apt-cache search パッケージ名
apt searchで、指定したパッケージ名を検索できます。
パッケージをインストールしたい(apt install)
$ apt install パッケージ名
$ apt install ripgrep
# apt-get install パッケージ名
$ apt-get install -y --no-install-recommends git // Dockerfile
apt installで、パッケージをインストールできます。
複数のパッケージ名を一度に指定できます。
インストール済みパッケージはdpkg -lや/var/lib/dpkg/statusで確認できます。
Dockerfileなどでは、-y / --yesや--no-install-recommendsなどのオプションをつけて使います。
パッケージリストを更新したい(apt update)
$ apt update
# apt-get update
apt updateで、パッケージの更新を確認できます。
更新確認用のリストは/etc/apt/sources.list.d/(DEB822形式ではdebian.sourcesなど)に保存されます。
aptitudeしたい(aptitude)
$ apt install aptitude
$ aptitude --version
aptitude 0.8.13
aptitudeは、aptとは別系統の高機能なパッケージ管理コマンドです。
デフォルトではインストールされていないので、使いたい場合は別途インストールします。
引数なしで実行するとncursesベースの画面が起動します。
矢印キーでパッケージを選んでインストール・削除できます。
依存関係の解決アルゴリズムもaptより賢いと言われています。
$ aptitude search ripgrep
p ripgrep - Recursively searches directories for a regex pattern
$ aptitude install ripgrep
$ aptitude show ripgrep
search、install、showなどのサブコマンドも利用できます。
サブコマンドはaptとほぼ同じ感覚で使えます。
dpkgしたい(dpkg)
$ dpkg -l
$ dpkg -l ripgrep
dpkgは、Debian系Linuxのパッケージ管理の低レベルコマンドです。
aptも内部でdpkgを使っています。
手元にある.debパッケージファイルを直接操作するコマンドです。
日常的に使うことはほぼありませんが、トラブルシュートしたいときに覚えておくとよいかもしれません。
-lオプションで、インストール済みパッケージを一覧できます。
パッケージ名を指定すると、そのパッケージだけに絞り込めます。
$ dpkg -L ripgrep
-Lオプションで、指定したパッケージがインストールしたファイルの一覧を確認できます。
$ dpkg -S /usr/bin/rg
-Sオプションで、指定したファイルがどのパッケージによってインストールされたか調べられます。
-Lの逆引きです。
$ dpkg -s ripgrep
-sオプションで、パッケージの詳細情報(バージョン、依存関係、説明文など)を確認できます。
$ apt-get download ripgrep
$ dpkg -i ripgrep_13.0.0-4+b2_arm64.deb
-iオプションで、.debファイルを直接インストールできます。
aptのリポジトリに登録されていない.debファイルを配布された場合に使います。
$ dpkg -r ripgrep
-rオプションで、パッケージを削除できます。
設定ファイルは残るので、完全に削除したい場合はapt purge(もしくはdpkg --purge)を使います。
リポジトリを追加したい
$ install -m 0755 -d /etc/apt/keyrings
$ curl -fsSL リポジトリのGPG鍵のURL -o /etc/apt/keyrings/リポジトリ名.asc
標準リポジトリにないパッケージを使いたい場合は、リポジトリを追加します。
まず、リポジトリが提供するGPG鍵をダウンロードして/etc/apt/keyrings/に保存します。
$ echo 'deb [arch=アーキテクチャ signed-by=/etc/apt/keyrings/リポジトリ名.asc] リポジトリのURL コードネーム stable' > /etc/apt/sources.list.d/リポジトリ名.list
$ apt update
/etc/apt/sources.list.d/に.listファイルを追加し、signed-byで先ほどのGPG鍵を紐付けます。
apt updateを実行すると、追加したリポジトリのパッケージも検索・インストールできるようになります。
注意
以前はapt-keyコマンドでGPG鍵を登録する方法が主流でしたが、非推奨になりました。
GPG鍵をファイルとして/etc/apt/keyrings/に保存し、sources.list(または.listファイル)側でsigned-byを指定する方法が現在推奨されています。
注釈
Debianは標準リポジトリがカバーする範囲が広く、自分でリポジトリを追加する必要はほとんどありません。 その分、サードパーティのリポジトリを追加する場合は、完全に自己責任という位置づけになるため、GPG鍵の扱いも慎重(=手間がかかる)に設計されているのだと思います。
オススメのパッケージ
$ apt install build-essential
$ apt install gdb
$ apt install vim
$ apt install git
$ apt install openssh-client
$ apt install libssl-dev libpq-dev
$ apt install docker.io
$ apt install python3
$ apt install python3-pip
$ apt install nodejs
$ apt install ruby
$ apt install ripgrep