Linuxにおけるソフトウェアインストール手法の徹底解説

パッケージ管理の基本アプローチ

Linuxシステムにおいてソフトウェアを導入する際、主に三つの方法が存在します。それぞれの特徴と実際の操作手順について解説します。

RPMパッケージの直接インストール

バイナリ形式のパッケージを直接操作する方法です。依存関係の解決は手動で行う必要があります。

# ApacheサーバーのRPMパッケージをインストール
rpm -Uvh httpd-2.4.6-97.el7.centos.x86_64.rpm

# インストール済みパッケージの検証
rpm -q httpd
rpm -ql httpd | grep conf

# パッケージ構成の確認
rpm -qc httpd

パッケージ名の構成要素:
httpd-2.4.6-97.el7.centos.x86_64.rpm において
httpd:ソフトウェア名、2.4.6:バージョン、97:リビジョン、el7:RHEL7互換、x86_64:64ビットアーキテクチャ

YUMによる依存解決インストール

リポジトリから自動的に依存関係を解決してインストールする方法です。

# ウェブサーバーソフトウェアのインストール
yum install -y httpd

# キャッシュのクリアと再構築
yum clean all && yum makecache fast

# インストールプロセスの内部フロー
1. /etc/yum.repos.d/ からリポジトリ定義を取得
2. 指定リポジトリからメタデータをダウンロード
3. 依存関係を自動解決
4. /var/cache/yum にパッケージをキャッシュ
5. キャッシュから実インストール実行

ローカルリポジトリの構築

ネットワーク接続なしでソフトウェアを配布するための環境構築手順です。

単一サーバー環境の構築

# 必要ツールのインストール
yum install -y createrepo

# リポジトリディレクトリの作成
mkdir -p /srv/repo/{Packages,repodata}

# パッケージの配置とメタデータ生成
cp *.rpm /srv/repo/Packages/
createrepo --update /srv/repo

# カスタムリポジトリの登録
cat > /etc/yum.repos.d/local.repo <<EOF
[internal-repo]
name=Internal Package Repository
baseurl=file:///srv/repo
enabled=1
gpgcheck=0
EOF

# キャッシュの再構築
yum makecache

ネットワーク共有リポジトリの構築

# Nginxによる公開設定
yum install -y nginx
sed -i 's|root /usr/share/nginx/html|root /srv/repo|' /etc/nginx/nginx.conf
echo "autoindex on;" >> /etc/nginx/nginx.conf

# リポジトリの公開とサービス起動
systemctl enable --now nginx

# クライアント側の設定
cat > /etc/yum.repos.d/network.repo <<EOF
[network-repo]
name=Network Package Repository
baseurl=http://192.168.10.100
enabled=1
gpgcheck=0
EOF
yum makecache

セキュリティ設定の最適化

システムセキュリティとファイアウォール設定の調整方法です。

# SELinuxの無効化(永続的)
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0

# Firewalldの無効化
systemctl disable --now firewalld

# 必要な場合のポート開放例
firewall-cmd --permanent --add-service=http
firewall-cmd --reload

ロケール設定の調整

日本語環境での文字化け対策です。

# システム全体のロケール設定
echo "LANG=ja_JP.UTF-8" > /etc/locale.conf
source /etc/locale.conf

# 個別セッションの設定例
export LC_ALL=ja_JP.UTF-8
export LANG=ja_JP.UTF-8

# 利用可能なロケールの確認
localectl list-locales | grep -i jp

主要ロケール:
ja_JP.UTF-8:日本語環境(UTF-8エンコーディング)
en_US.UTF-8:英語環境(UTF-8エンコーディング)

タグ: RPM Yum nginx selinux firewalld

6月24日 20:24 投稿