こんにちは、リナックス先生です。第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 を叩くのは危険です。
- 特定パッケージのみ更新: 影響範囲を抑えるため、必要なものだけ更新するのが基本です。
sudo dnf update httpd
- セキュリティ修正のみ適用: 機能を維持しつつ脆弱性だけを塞ぐ場合に便利です。
sudo dnf update --security
- 履歴の確認: 「昨日から急に動かなくなった!」という時は、DNFの操作履歴を確認します。
dnf history
dnf history undo [ID]と打てば、特定のインストール操作を取り消す(ロールバック)ことも可能です。これがパッケージ管理の真骨頂ですね。
5. まとめと次回予告
第4回では、Linuxにおける「ソフトウェア管理」の神髄を学びました。
- DNF は依存関係を自動解決してくれる賢い執事。
- リポジトリ はインターネット上の巨大な倉庫。
- systemctl を使ってサービス(Apache)の起動管理を行う。
- dnf history はトラブル調査の強力な味方になる。
さて、Apacheは起動しましたが、まだ外の世界(ブラウザ)からは見ることができません。なぜなら、サーバーの「門」が閉じているからです。
次回の第5回では、「ネットワーク管理とファイアウォール」をテーマに、IPアドレスの基礎知識と firewalld を操作してサービスを安全に公開する方法を徹底解説します。ついにWebサイトが表示される感動の瞬間まで、あと少しです!
▼ サーバー構築・開発を学ぶならVPSで ▼
エンジニア必須の環境
「おすすめVPS」
技術スキルを活かす
「ITエンジニア転職」

コメント