apt パッケージ管理(Ubuntu)

Ubuntu のパッケージ管理でよく使うコマンドは次の通りである。システムを変更するコマンドの実行には sudo が必要である。

ソースコードからパッケージをビルドする手順(例: vlc)

Ubuntu で vlc のソースコードを取得し、ビルド・インストールする手順を示す。この方法は、リポジトリにないバージョンを使いたい場合や、ビルドオプションを変えたい場合に用いる。

まず、ソースコードリポジトリ(deb-src)を有効にする。Ubuntu 24.04 以降のリポジトリ設定は /etc/apt/sources.list.d/ubuntu.sources にあり、deb822 形式で書かれている。Types: deb の行を Types: deb deb-src に書き換える。

# Ubuntu 24.04 以降 (root権限が必要)
sudo nano /etc/apt/sources.list.d/ubuntu.sources

書き換え後の ubuntu.sources は次のようになる。

Types: deb deb-src
URIs: http://jp.archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Ubuntu 22.04 以前では /etc/apt/sources.list を編集し、deb-src から始まる行のコメントアウト (#) を解除する。

# Ubuntu 22.04 以前 (root権限が必要)
sudo nano /etc/apt/sources.list

ファイル編集後、パッケージリストを更新する。

sudo apt update

次に、作業ディレクトリを作り、ソースコードの取得、ビルド、インストールを行う。

# 作業ディレクトリの作成と移動 (例: ホームディレクトリ以下)
mkdir ~/vlc-build
cd ~/vlc-build

# vlc のソースコードをダウンロード (sudo は不要)
apt source vlc

# vlc のビルドに必要な依存パッケージをインストール
sudo apt build-dep vlc

# ダウンロードされたソースコードのディレクトリに移動 (バージョン名は適宜読み替える)
cd vlc-*

# パッケージをビルド (-b はバイナリパッケージのみ, -uc -us は署名の省略, sudo は不要)
dpkg-buildpackage -b -uc -us -rfakeroot

# 親ディレクトリに戻る
cd ..

# ビルドされた .deb パッケージをインストール
sudo dpkg -i *.deb

注意: この方法でインストールしたパッケージは、リポジトリ版と同じかそれより新しいバージョン番号の場合、apt upgradeapt full-upgrade で更新されない。リポジトリ版に戻すには sudo apt install --reinstall <パッケージ名> を実行する。


RPM パッケージを利用する手順(例)

RPM 形式のパッケージしか提供されていない場合は、alien を使って DEB 形式に変換してインストールできる。ただし、変換したパッケージは依存関係やファイル配置が Ubuntu と合わないことがあるため、Ubuntu 用の DEB パッケージが提供されている場合はそちらを使う。

# パッケージリストを更新
sudo apt update

# alien パッケージをインストール (-y は確認なしでインストールするオプション)
sudo apt -y install alien

# RPM パッケージを DEB パッケージに変換 (-d オプション)
# 例: example-package.rpm を変換
sudo alien -d example-package.rpm

# 生成された DEB パッケージをインストール
# 例: example-package.deb をインストール
sudo dpkg -i example-package.deb

# 不足している依存パッケージを解決
sudo apt -f install