ソフトウェアの管理(7章)

ソフトウェアパッケージ

プログラムのインストールと削除


OSのインストール後は、以下の作業を必要に応じて行います。

1. プログラムの追加インストール
  Webサーバやメールサーバなどの、OSに現在インストールされていないプログラムが後から必要になった場合、
  追加インストールを行います。

2. OSの起動時に、自動起動させるサーバプログラムの設定
  Webサーバやメールサーバなどのサーバプログラムは、OSの起動時に自動的に起動し、OSをシャットダウンす
  るまでバックグラウンドで常に動作させる必要があります。このようなプログラムには、自動起動の設定を行いま
  す。

3. 不要なプログラムのアンインストール
  インストールされたプログラムが不要になった場合は、必要に応じて無効化するか、アンインストール(削除)
  を行います。
  不要なプログラムが動作したままの状態になっていると、コンピュータのメモリやCPUが無駄に消費されます。ま
  た、セキュリティ上のリスクなども高まりますし、使っていないプログラムのための更新プログラムのインストールも
  行わなければいけません。

4. 更新プログラムのインストール
  OSやプログラムに不具合が見つかると、更新プログラム(修正プログラム、パッチとも言います)が提供されま
  す。更新プログラムは不定期に提供されるため、その都度追加インストールを行う必要があります。
  Windowsの場合は、Windowsアップデートというプログラムが標準でインストールされており、Microsoft製
  品の更新プログラムを自動的にインストールしています。
  更新プログラムには、以下の種類があります。
   ① 性能・機能向上を目的としたもの
   ② 不具合の修正
   ③ 脆弱性やセキュリティの観点からの修正

パッケージとリポジトリ


OSには、パッケージ管理システムという、様々なプログラムのインストールとアンインストール(削除)、プログラム
同士の依存関係を管理するシステムが提供されています。

パッケージとは、ソフトウェアの実行ファイル、ドキュメントファイル、設定ファイル、インストール時に必要なスクリプトな
どをまとめてアーカイブしたファイルのことです。
パッケージは、リポジトリ(Repository:貯蔵庫、倉庫)と呼ばれるパッケージを保存しているサーバから、主に
インターネット経由でダウンロードして入手します。

Windowsの場合は、もともとWindowsにインストールされているパッケージ管理システムを利用していますが、
Linuxの場合はディストリビューションによって異なるパッケージ管理システムが提供されています。

Linuxの代表的なパッケージとして、rpm(Red Hat)やdeb(Debian)形式があります。

  • rpm(Red Hat)形式
  •   Red Hat Linux用に開発されたパッケージ形式で、Red Hat Enterprise LinuxやCentOSなどが採用し
      ています。

  • deb(Debian)形式
  •   Debian用に開発されたパッケージ形式で、Debian GNU/LinuxやUbuntuなどが採用しています。

yumコマンド


RPM(Redhat Package Manager)は、Red Hat Enterprise Linuxに代表される、Red Hat系ディストリ
ビューションで採用されているパッケージ管理システムで、rpmというパッケージファイル形式を採用しています。
rpmファイルのインストール、アンインストールにはrpmコマンドかyumコマンドを使用します。
yumコマンドの方が使いやすいので、Linuxの操作に慣れるまでは、どちらも利用できる場合はyumを、yumコマンド
で対応できない場合はrpmを利用すると良いでしょう。

  • rpmコマンド
  •   個々のパッケージを管理します。

  • yumコマンド
  •   内部でrpmを呼び出しています。rpmの機能に、自動更新機能や、パッケージ間の依存関係の管理などを含め
      た高機能なパッケージ管理機能を追加で提供します。

実際に、Webサーバのパッケージ httpd をyumを使ってインストールしてみましょう。

1. パッケージのインストールには管理者権限が必要なので、rootユーザに切り替えます(パスワードはrootです)。
  $ su

2. Webサーバのパッケージである、httpdパッケージをインストールします。
  # yum install httpd
  本研修の環境では、Linux仮想マシンはインターネット上のリポジトリにアクセスができないため、エラーメッセージが
  大量に表示ます。これは、4章で学習した標準エラー出力の知識を活用すれば回避できます。
  エラーメッセージを非表示にしてhttpdをインストールします。
  2>はエラーメッセージをリダイレクトするときに使います。/dev/nullは、どこにも出力せずに破棄するときのリダイレク
  ト先として指定します。
  # yum install httpd 2>/dev/null

  Webサーバのパッケージ httpdが、すでにインストールされているため何もせずに終了したことを伝えるメッセージが
  表示されています。


yumコマンドは、不要になったパッケージをアンインストールすることもできます。

1. httpd が不要になった場合は、次のように指定します。
  ※プロンプトが#ではなく$になっている場合は、suコマンドでrootユーザに切り替えてから実行してください。
  # yum remove httpd
  または
  # yum remove httpd 2> /dev/null インターネットに接続できない旨のエラーメッセージを非表示にする

2. 「上記の処理を行います。よろしいでしょうか? [y/N] 」という確認メッセージが表示されたら、Yesの意味で
  yと入力し、[Enter]キーを押します。
  その後、しばらくすると「完了しました! 」というメッセージが表示され、httpdの削除が完了したことが確認でき
  ます。
  なお、途中の確認メッセージ(yかnの入力)をスキップしてアンインストールを続行させる場合は、-yオプショ
  ンを以下のように指定します(インストール時も同様に-yが利用できます)。
  # yum –y remove httpd または yum -y remove httpd 2> /dev/null
いずれも、本演習環境固有の問題(仮想マシンのインターネット接続を意図的に禁止している)のために表示さ
れるエラーメッセージを回避する場合は、末尾に 2> /dev/null を指定してください。

3. 実際にhttpdを、途中の確認を省略してインストールしてみましょう。
  本研修ではインターネット経由ではなく、LinuxのインストールDVDファイルからインストールを行うため、講師
  の指示に従い、仮想マシンにLinuxのインストールDVDファイルを認識させます。その後、以下のコマンドを実
  行します(すでに指示があった場合はそのまま進んでください)。
  -yを指定しているので、途中の確認なしにインストールが行われます。
  # yum –y install httpd 2> /dev/null

4. httpdの情報を確認します。実行結果に「リポジトリー: installed」と表示されていれば、httpdがインストー
  ルされている、と考えてください。
  確認が終わったら、exitコマンドで元のユーザuser01に戻ります。
  # yum info httpd
  # exit


更新プログラムとは、性能向上や、機能向上、不具合の修正、セキュリティの観点から必要な修正などを目的とし
て不定期に提供されるプログラムです。更新プログラムが提供されると、その都度追加インストールを行う必要があ
ります。
(サーバとして実際に利用しているコンピュータでは、更新プログラムをインストールしたことによって利用中のアプリ
ケーションに悪影響を与える場合などがあるため、テストをしてからインストールします)

更新プログラムの有無を確認する場合は、yum check-update コマンドを実行します。
実際に更新プログラムのインストールを行う場合は、管理者として yum update または yum -y update コマ
ンドを実行します。

==============================
OnePoint

本研修では、Linux仮想マシンをインターネットに接続していなこと、updateには時間がかかることなどの理由から、更
新プログラムのインストールや確認はコマンドの確認のみ行い、実行はしません。
==============================

インストール後の作業(systemctlコマンド)


Linuxの起動とともにバックグラウンドで起動し、Linuxのシャットダウンまで動作するプロセスを、サービス(またはデーモン:
daemon)といいます。たとえば、Webサーバやメールサーバなどの一般的なサーバプログラム(サーバプロセス)は、サービ
スとして動作させます。これは、ユーザからの要求に常に答えられるようにするためです。
サービス(デーモン)の確認/起動/停止状態表示は、CentOS 7ではsystemctlというコマンドを使用します。
systemctlの主なオプションを、httpdを例に確認します。

1. httpdの現在の状態を表示します。
  「Active:」行に、「inactive (dead)」と表示されている場合は停止状態、「 active (running)」と表示されている
  場合は稼働中です。
  $ systemctl status httpd

2. httpdを開始します。
  $ su            2以降の操作は、管理者権限が必要なためユーザを切り替えます
  # systemctl start httpd (パスワードはroot)

3. httpdを停止する場合は、以下のように指定します。
  停止した場合は、systemctl start httpdで開始しておきましょう。
  # systemctl stop httpd

4. Linux起動時にhttpdが自動実行されるように構成します。
  # systemctl enable httpd

5. Linux起動時に実行されないように無効化します。
  # systemctl disable httpd

6. 確認が終わったら、元のユーザuser01に戻ります。
  # exit

2.~5.の操作を行った場合は、1.のsystemctl status httpdコマンドで、状態を確認するようにしましょう。
また、CentOS 7よりも前のバージョンでは、serviceコマンドやchkconfigコマンドを使用していましたが、CentOS 7からは
systemctlコマンドに移行しています。同様の操作を以前のバージョンで行う場合は、コマンドが異なるためマニュアルを参照
してください。

aptによるパッケージ管理(参考)


人気の高いLinuxディストリビューションのUbuntuを含む、Debianから派生したLinuxディストリビューションで利
用されているパッケージ管理システムで利用されているのがapt系コマンドです。

インストール、アンインストールにはapt-getコマンドを使用します。

      

  • パッケージのインストール
  •     apt-get install <パッケージ名>

      

  • パッケージのアンインストール
  •     apt-get remove <パッケージ名>

      

  • 設定ファイルも含めた完全削除
  •     apt-get purge <パッケージ名>

    また、情報表示や検索にはapt-cacheコマンドを使用します。

      

  • パッケージの情報を表示
  •     apt-cache show <パッケージ名

章末問題(SHOULD)

本章の最後に、sendmailというメールサーバのパッケージをインストールし、起動させる、というテーマを通じて、
yumやsystemctlコマンドの使い方を復習しましょう。

次の指示に従い、Linuxにメールサーバのパッケージを導入してください

1. メールサーバプログラムのパッケージ「sendmail」をインストールしてください。
 
 
2. systemctlコマンドで、現在の稼働状況(稼働中/停止中)を確認してください。
 
 
3. sendmailをLinux起動時に自動起動するように構成してください。
 
 
4. sendmailを起動してください(3の操作はLinuxが次回再起動したときに自動起動する、という設定なの
  で、今すぐに起動するときは本操作が必要です)。
 
 
5. sendmailが起動したことを確認してください。
 
 
6. sendmailをアンインストールしてください。

-Linux入門

© 2021 スタートダッシュ