【第4回】DNF徹底攻略!Webサーバー(Apache)構築で学ぶパッケージ管理の基本|新入社員のためのLinux基礎講座

こんにちは、リナックス先生です。第3回ではユーザー管理とパーミッションを学び、安全に作業する土台が整いましたね。今回からはいよいよ、サーバーに「役割」を持たせる実践フェーズに入ります。

Linuxでソフトウェアをインストールする際、ソースコードをダウンロードしてコンパイル…なんて時代もありましたが、現代の主流はパッケージ管理システムです。AlmaLinux 9の標準ツールであるDNF(Dandified YUM)を使いこなし、世界で最も普及しているWebサーバーの一つ、Apache(アパッチ)を立ち上げてみましょう。

コウ君

先生!ネットで調べると「yum」ってコマンドが出てくるんですけど、僕のAlmaLinuxで打っても大丈夫ですか?あと、パッケージって何が便利なんですか?

リナックス先生

いい質問ね。実はDNFはYUMの後継なの。AlmaLinux 9ではyumと打っても裏側でdnfが動くようになっているから大丈夫よ。パッケージの最大の利点は「依存関係の自動解決」。必要な部品を全部自動で揃えてくれる、いわばエンジニア専用のアプリストアのようなものね!

【全8回】新入社員のためのLinux基礎講座:カリキュラム一覧

  • 第1回:ConoHa VPSで始めるAlmaLinux 9環境構築とSSH接続の極意
  • 第2回:現場で迷わない!標準ディレクトリの役割と効率的なファイル操作コマンド
  • 第3回:セキュリティの基本!rootに頼らない適切な権限設計とsudoの運用
  • ▶ 第4回:DNF徹底攻略。dnfコマンドの使い方とWebサーバー(Apache)のセットアップ(今ここ!)
  • 第5回:firewalldとIPアドレスの理解。サービスを安全に公開するための通信制御
  • 第6回:エンジニアの嗜み「Vim」の操作と、タイムゾーン・ロケール等のシステム設定
  • 第7回:サーバーが重い原因を探る!systemdの操作とリソース監視(top/ps/df)
  • 第8回:運用のプロへの第一歩。バックアップ処理を自動化するシェルスクリプトの作成

1. パッケージ管理システムとDNFの仕組み

Linuxのソフトウェアは、実行ファイルや設定ファイル、マニュアルなどが一つにまとめられた「パッケージ(.rpm形式など)」として配布されています。しかし、あるソフトを動かすには別のソフトが必要になることがあり、これを「依存関係」と呼びます。

DNF (Dandified YUM) は、この依存関係を自動的に計算し、必要なものを一括でダウンロード・インストールしてくれる強力なツールです。パッケージを取得する場所を「リポジトリ」と呼び、標準ではAlmaLinux公式のサーバーが登録されています。

💡 プロのノウハウ:EPELリポジトリの追加
標準リポジトリには最低限のソフトしかありません。現場では、より多くのOSS(便利なツールなど)を扱うために EPEL (Extra Packages for Enterprise Linux) というサードパーティリポジトリを追加するのが一般的です。以下のコマンドで導入できます。

sudo dnf install epel-release


2. 実践!DNF基本コマンドマスター

インフラエンジニアが日常的に使うDNFコマンドを整理しました。これらはすべて sudo 権限が必要です。

目的 コマンド 備考
検索 dnf search [キーワード] パッケージ名や説明文から検索します。
詳細確認 dnf info [パッケージ名] バージョンやライセンスを確認します。
インストール dnf install [パッケージ名] 依存関係を含めて導入します。
削除 dnf remove [パッケージ名] ソフトをアンインストールします。
最新化 dnf update 導入済みパッケージをすべて最新にします。

コマンドの途中で Is this ok [y/N]: と聞かれますが、あらかじめ -y オプションを付けておくと、すべて自動で承認(Yes)して進めることができます。


3. Apache (httpd) のインストールと起動設定

それでは、Webサーバーの代名詞「Apache」をインストールしてみましょう。Red Hat系のOSではパッケージ名は httpd となります。

手順(1) インストール

sudo dnf install -y httpd

手順(2) サービスの起動と自動起動設定

インストールしただけでは、ソフトは動きません。systemctl コマンドを使って「OSが起動した時に自動で立ち上がる」ように設定します。

# Apacheを今すぐ起動
sudo systemctl start httpd

# OS起動時に自動起動するように設定
sudo systemctl enable httpd

# 状態を確認
systemctl status httpd

Active: active (running) と表示されていれば、Webサーバーは無事に稼働しています!

⚠️ トラブルシューティング / 注意点
この時点でブラウザからサーバーのIPアドレスを叩いても、おそらく「接続拒否」になります。これはApacheのせいではなく、Linuxの強力なファイアウォール(firewalld)が通信を遮断しているからです。セキュリティを重視するLinuxの正しい挙動ですが、具体的な解除方法は次回の「ネットワーク編」で詳しく解説します!


4. 現場の流儀:パッケージのアップデートと注意点

サーバーを運用する上で、脆弱性対策(セキュリティパッチ)のためのアップデートは欠かせません。しかし、本番環境で闇雲に dnf update を叩くのは危険です。

  1. 特定パッケージのみ更新: 影響範囲を抑えるため、必要なものだけ更新するのが基本です。
    sudo dnf update httpd
  2. セキュリティ修正のみ適用: 機能を維持しつつ脆弱性だけを塞ぐ場合に便利です。
    sudo dnf update --security
  3. 履歴の確認: 「昨日から急に動かなくなった!」という時は、DNFの操作履歴を確認します。
    dnf history

    dnf history undo [ID] と打てば、特定のインストール操作を取り消す(ロールバック)ことも可能です。これがパッケージ管理の真骨頂ですね。


5. まとめと次回予告

第4回では、Linuxにおける「ソフトウェア管理」の神髄を学びました。

  • DNF は依存関係を自動解決してくれる賢い執事。
  • リポジトリ はインターネット上の巨大な倉庫。
  • systemctl を使ってサービス(Apache)の起動管理を行う。
  • dnf history はトラブル調査の強力な味方になる。

さて、Apacheは起動しましたが、まだ外の世界(ブラウザ)からは見ることができません。なぜなら、サーバーの「門」が閉じているからです。

次回の第5回では、「ネットワーク管理とファイアウォール」をテーマに、IPアドレスの基礎知識と firewalld を操作してサービスを安全に公開する方法を徹底解説します。ついにWebサイトが表示される感動の瞬間まで、あと少しです!

▼ サーバー構築・開発を学ぶならVPSで ▼

エンジニア必須の環境
「おすすめVPS」

VPSランキングを見る

技術スキルを活かす
「ITエンジニア転職」

転職エージェントを見る

コメント