パッケージ管理
パッケージ管理
apt・dpkg でソフトを入れる・消す・調べる。snap・pipx・npm での入れ方も。
aptパッケージを入れる・更新する
Ubuntu や Debian でソフト(パッケージ)を入れる・更新する・消すための基本のコマンドです。ほとんどのソフトは sudo apt install 名前 で入れられます。
| 書き方 | 意味 |
|---|---|
sudo apt update | パッケージ一覧を最新にする(入れる前にまず実行) |
sudo apt upgrade | 入っているものをすべて更新 |
sudo apt full-upgrade | 依存関係の入れ替えも含めて更新 |
sudo apt install <名前...> | インストール |
sudo apt install ./file.deb | 手元の .deb ファイルを入れる |
sudo apt remove <名前> | 削除(設定ファイルは残す) |
sudo apt purge <名前> | 設定ファイルごと削除 |
sudo apt autoremove | 使われなくなった依存パッケージを削除 |
apt search <単語> | 探す |
apt show <名前> | 詳しい説明 |
apt list --installed | 入っているものの一覧 |
apt list --upgradable | 更新できるものの一覧 |
apt policy <名前> | 入っているバージョンと、入れられるバージョン |
$ sudo apt update && sudo apt upgrade -y
$ sudo apt install -y jq tree htop
$ apt search --names-only ripgrep
$ apt list --installed | grep -i python
$ apt-mark showmanual # 自分で入れた(依存ではない)パッケージdpkg.deb パッケージを直接扱う
.deb ファイルを直接入れたり、入っているパッケージの中身や、あるファイルがどのパッケージのものかを調べたりします。
$ dpkg -l | grep nginx # 入っているか
$ dpkg -L ripgrep # そのパッケージが入れたファイルの一覧
$ dpkg -S /usr/bin/rg # そのファイルを入れたパッケージ
$ sudo dpkg -i package.deb # 入れる(依存関係は解決しない → apt install ./package.deb の方が楽)snapSnap パッケージ
Canonical の Snap ストアからアプリを入れます。apt にないアプリや、新しいバージョンが欲しいときに使います。
$ snap find vscode
$ sudo snap install <名前> --classic
$ snap list
$ sudo snap refresh # 更新
$ sudo snap remove <名前>pipxPython のコマンドを隔離して入れる
Ubuntu には最初から入っていません。 で入れられます。
Python製のコマンド(yt-dlp・httpie など)は、pip install ではなく pipx で入れると、システムのPythonを汚しません。
$ pipx install yt-dlp
$ pipx list
$ pipx upgrade-all
$ pipx ensurepath # ~/.local/bin を PATH に追加pip / venvPython のライブラリ
Ubuntu には最初から入っていません。 で入れられます。
Ubuntu 24.04 では、システム全体への pip install は禁止されています(externally-managed-environment エラー)。プロジェクトごとに仮想環境を作って入れます。
$ python3 -m venv .venv
$ source .venv/bin/activate
(.venv) $ pip install requests
(.venv) $ pip freeze > requirements.txt
(.venv) $ deactivatenpm / npxNode.js のパッケージ
Ubuntu には最初から入っていません。 で入れられます。
Node.js のパッケージを入れたり、package.json に書いたスクリプトを実行したりします。npx は入れずに1回だけ実行します。
$ npm install # package.json の依存を入れる
$ npm install -D vite # 開発用の依存として追加
$ npm run dev # package.json の scripts を実行
$ npx create-vite@latest my-app # 入れずに1回だけ実行
$ npm ls --depth=0 # 入っているものの一覧
$ npm outdated # 更新できるものapt-cache / apt-markパッケージの情報と固定
パッケージの依存関係や入れられるバージョンを調べたり、特定のパッケージを更新しないように固定したりします。
$ apt-cache depends curl # 依存しているパッケージ
$ apt-cache rdepends libssl3 # それに依存しているパッケージ
$ apt-cache madison nodejs # 入れられるバージョンの一覧
$ sudo apt-mark hold docker.io # 更新しないように固定
$ sudo apt-mark unhold docker.io
$ apt-mark showhold
$ sudo apt install nodejs=18.19.1+dfsg-6ubuntu5 # バージョンを指定して入れるadd-apt-repositoryPPA やリポジトリを追加する
PPA などのリポジトリを追加して、Ubuntu 標準より新しいバージョンのソフトを入れられるようにします。
$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt update && sudo apt install git
$ sudo add-apt-repository --remove ppa:git-core/ppa
$ ls /etc/apt/sources.list.d/ # 追加したリポジトリの設定update-alternatives同じ役割のコマンドを切り替える
同じ役割のコマンドが複数入っているとき(複数の Java、エディタなど)、どれを既定にするかを切り替えます。
$ sudo update-alternatives --config editor # 既定のエディタを選ぶ
$ sudo update-alternatives --config java
$ update-alternatives --list python3do-release-upgradeUbuntu のバージョンを上げる
Ubuntu そのものを次のバージョン(次の LTS など)に上げます。
$ sudo apt update && sudo apt full-upgrade
$ sudo do-release-upgrade # 次の LTS へunattended-upgradeセキュリティ更新を自動で入れる
セキュリティ更新を自動で入れるようにします。サーバーでは有効にしておくのが一般的です。
$ sudo dpkg-reconfigure -plow unattended-upgrades # 有効にする
$ sudo unattended-upgrade --dry-run -d # 試しに動かす
$ cat /var/log/unattended-upgrades/unattended-upgrades.logapt-fileまだ入れていないコマンドのパッケージを探す
Ubuntu には最初から入っていません。 で入れられます。
まだ入れていないコマンドやファイルが、どのパッケージに入っているかを調べます。
$ sudo apt install apt-file && sudo apt-file update
$ apt-file search bin/dig # → bind9-dnsutils容量を空ける
$ sudo apt autoremove --purge
$ sudo apt clean # ダウンロード済みの .deb を消す
$ sudo journalctl --vacuum-size=200M
$ docker system prune # Docker を使っているなら
$ du -sh ~/.cache/* | sort -h | tail