先にOSと系統を確認する
共通の確認方法COMMAND
. /etc/os-release
printf 'ID=%s\nLIKE=%s\nVERSION=%s\n' "$ID" "$ID_LIKE" "$VERSION_ID"Rocky Linuxでの表示例OUTPUT
ID=rocky
LIKE=rhel centos fedora
VERSION=9.5.はファイルの変数定義を現在のシェルへ読み込みます。/etc/os-releaseはOSが提供するため、表示値は環境によって異なります。
| 観点 | Debian系 | Red Hat系 |
|---|---|---|
| 代表例 | Debian、Ubuntu、Mint | RHEL、Fedora、Rocky、Alma |
| 形式 | deb | RPM |
| 高水準 | apt/apt-get | dnf |
| 低水準 | dpkg | rpm |
| 主なリポジトリ設定 | /etc/apt/sources.list、sources.list.d | /etc/yum.repos.d/*.repo |
リポジトリと依存関係
リポジトリは署名されたパッケージとメタデータの配布元です。aptやdnfは一覧から適切な版を選び、必要な依存パッケージも解決します。dpkgとrpmは個別ファイルや導入済み情報を扱う低水準ツールです。
Webから直接実行しない 出所不明の
curl URL | sudo shは、内容を確認せず管理者権限で実行することになります。まず公式リポジトリを使い、追加リポジトリは提供元、署名鍵、対象OS版、更新方針を確認します。検索して情報を読む
| 操作 | Debian系 | Red Hat系 |
|---|---|---|
| 名前・説明を検索 | apt search nginx | dnf search nginx |
| 詳細 | apt show nginx | dnf info nginx |
| 導入済み一覧 | dpkg -l | rpm -qa |
| 所有パッケージ | dpkg -S /bin/ls | rpm -qf /bin/ls |
導入済みか確認COMMAND
command -v curl
curl --version | head -n 1表示例OUTPUT
/usr/bin/curl
curl 8.5.0 (x86_64-pc-linux-gnu) ...command -vは実際に呼び出されるコマンドの場所を表示します。見つからない場合は何も表示せず終了ステータス1になります。
リポジトリからインストールする
Debian/UbuntuCOMMAND
sudo apt update
apt show tree
sudo apt install treeRHEL/Fedora/Rocky/AlmaCOMMAND
dnf info tree
sudo dnf install tree共通の確認COMMAND
tree --version表示例OUTPUT
tree v2.1.1 (c) 1996 - 2023 by Steve Baker, ...版や表示はOS版で異なります。実行前に追加・削除予定、容量、確認質問を読みます。自動承認の-yは内容を確認できなくなるため、学習中は付けません。
一覧更新とパッケージ更新を区別する
| 目的 | Debian系 | Red Hat系 |
|---|---|---|
| メタデータ更新 | sudo apt update | sudo dnf makecache(通常dnfが自動管理) |
| 更新候補 | apt list --upgradable | dnf check-update |
| 通常更新 | sudo apt upgrade | sudo dnf upgrade |
注意する点
apt updateだけでは導入済みソフトは更新されないdnf check-updateは更新候補があると終了ステータス100になる仕様- 本番環境は更新前にバックアップ、変更内容、再起動、保守時間を確認
- ディストリビューションのメジャー版更新は通常更新と別の手順
削除と不要依存を理解する
| 目的 | Debian系 | Red Hat系 |
|---|---|---|
| 削除 | sudo apt remove tree | sudo dnf remove tree |
| 設定も削除 | sudo apt purge package | パッケージごとの設定保存方針を確認 |
| 不要依存 | sudo apt autoremove | sudo dnf autoremove |
削除予定を読む autoremoveは共有依存や構成の変化で予想より多くを候補にすることがあります。確定前に一覧を読み、重要なメタパッケージやサービスが含まれていないか確認します。
ローカルのパッケージファイル
ファイル情報だけを調べるCOMMAND
# Debian系の.deb
dpkg-deb --info ./example.deb
# Red Hat系の.rpm
rpm -qpi ./example.rpm導入時は依存関係を解決できる高水準ツールを使います。Debian系はsudo apt install ./example.deb、Red Hat系はsudo dnf install ./example.rpmです。
信頼性の確認 拡張子が正しくても安全とは限りません。公式配布元、署名、チェックサム、対象OSとCPU、保守状況を確認してください。
パッケージ以外にもある違い
| 項目 | Debian/Ubuntuの例 | RHEL系の例 |
|---|---|---|
| Webサーバーユーザー | www-data | apache |
| Apacheパッケージ/サービス | apache2 | httpd |
| SSHサービス | ssh | sshd |
| MAC | AppArmorを使う構成が多い | SELinuxを標準利用する構成が多い |
| ネットワーク管理 | UbuntuではNetplanなど | NetworkManagerなど |
表は代表例で、導入方法や版により異なります。ブログ記事のコマンドをコピーする前に、自分のOS版の公式文書と実際のサービス名を確認します。
ミニ課題:導入前調査
自分のOS系統、curlの場所、提供パッケージの詳細を表示してください。インストールは不要です。
解答例(Debian系)COMMAND
grep -E '^(ID|ID_LIKE)=' /etc/os-release
command -v curl
apt show curl 2>/dev/null | head -n 5表示例OUTPUT
ID=ubuntu
ID_LIKE=debian
/usr/bin/curl
Package: curl
Version: 8.5.0-2ubuntu10.6
Priority: optional