SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

HRzine Day(エイチアールジン・デイ)は、人が活き会社が成長する人事のWebマガジン「HRzine」が主催するイベントです。毎回、人事の重要課題を1つテーマに設定し、識者やエキスパードが持つ知見・経験を、参加者のみなさんと共有しています。

直近開催のイベントはこちら!

HRzine Day 2024 Winter

2024年2月1日(木)12:00~17:40

主要製品スペック一覧

人事業務の効率・確度・精度を高めるために欠かせないHRテクノロジー。その主な製品の機能を分野ごとに比較できる資料群です。製品検討の参考資料としてご活用ください。

eラーニング・LMS<br>主要製品スペック一覧 2024

eラーニング・LMS
主要製品スペック一覧 2024

その他のスペック一覧

人事労務管理システム<br>主要製品スペック一覧 2023

人事労務管理システム
主要製品スペック一覧 2023

タレントマネジメントシステム<br>主要製品スペック一覧 2023

タレントマネジメントシステム
主要製品スペック一覧 2023

Linuxを知らない人のためのLPICレベル1【101試験】入門 | 第2回

ソースからのインストールと「Red Hat系」パッケージ管理ツールを使ったインストール


  • Facebook
  • Twitter
  • Pocket
  • note
  • hatena

方法2:パッケージ管理ツールを使用してインストールする

では、2つ目の「パッケージ管理ツールを使用してインストールする」方法を見ていきましょう。こちらは、インストール自体はソースからインストールするよりもシンプルですが、覚えなければならないコマンドオプションがたくさんあります。

まず、Red Hat系のディストリビューションで使用されるパッケージ管理ツールのRPM(Red Hat Package Manager)を使ってみましょう。RPMはrpmコマンドを使って操作していきます。次のコマンドで、CUPSパッケージがインストール済みかどうかを確認できます。

# rpm -qa | grep cups

qオプションはインストール済みのパッケージの情報を出力するオプションで、aは「すべて(all)」の意味です。つまり、このコマンドは全パッケージの情報を出力し、その中から「cups」という文字列を含むデータ(行)を検索します。結果は次のようになります。

cups-1.6.3-17.el7.x86_64
cups-filters-libs-1.0.35-15.el7_0.1.x86_64
cups-filesystem-1.6.3-17.el7.noarch
……以下略……

「cups」という文字列を含むパッケージがすべて表示されます。CUPS本体は1行目の「cups-1.6.3-17.el7.x86_64」です。Red Hat系ディストリビューションであるCent OS 7には、デフォルトでCUPSパッケージがインストールされているため、rpm -qa | grep cupsを実行すると、この結果のようにCUPSパッケージの情報が表示されます。

今回はインストールをしたいので、一度、CUPSをアンインストールしましょう。アンインストールするには、rpmコマンドのeオプション(eraseの意味)を使用します。

# rpm -e cups

うまくいくと思いきや、実行すると次のようなエラーが発生します。

error: Failed dependencies:
     cups is needed by (installed) ghostscript-cups-9.07-18.el7.x86_64
     cups >= 1:1.4 is needed by (installed) hpijs-1:3.13.7-6.el7.x86_64
     cups >= 1.2.1-1.7 is needed by (installed) gutenprint-cups-5.2.9-18.el7.x86_64

これは「アンインストールしようとしているCUPSパッケージは別のパッケージが必要としているため、アンインストールできませんよ」という意味のエラーです。このように、RPMはパッケージの依存関係を保ったパッケージの操作ができません。

ここで登場するツールがYUMです。YUMは、RPM同様、Red Hat系ディストリビューションで使われるパッケージ管理ツールで、実は内部でrpmコマンドを呼び出しています。つまり、YUMはRPMの機能拡張版といえます。YUMとRPMの違いは、Linux管理における重要なポイントの1つです。

それでは、YUMを使ってCUPSをアンインストールしてみましょう。次のようにyumコマンドを実行します。

# yum remove cups

removeのように、コマンドの後ろに付けるワードをサブコマンドといいます。LPICの試験では「サブコマンドに何を入れるか」が問われるので、yumコマンドだけでなく、その他のコマンドについてもサブコマンドをしっかりと覚えておきましょう。上記のコマンドを実行すると次のような結果になります。

Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check

……中略……

Dependencies Resolved

================================================================================
Package                      Arch         Version          Repository       Size
================================================================================
Removing:
cups                         x86_64       1:1.6.3-17.el7   @anaconda       4.6 M
Removing for dependencies:
ghostscript-cups             x86_64       9.07-18.el7      @anaconda        55 k
gutenprint-cups              x86_64       5.2.9-18.el7     @anaconda       565 k
hpijs                        x86_64       1:3.13.7-6.el7   @anaconda       8.6 M

Transaction Summary
================================================================================
Remove  1 Package (+3 Dependent packages)

……中略……

Removed:
  cups.x86_64 1:1.6.3-17.el7                                                                                                 

Dependency Removed:
  ghostscript-cups.x86_64 0:9.07-18.el7        gutenprint-cups.x86_64 0:5.2.9-18.el7        hpijs.x86_64 1:3.13.7-6.el7      

Complete!

「Dependencies Resolved」と表示されていますね。先ほどrpmコマンドでエラーになった原因である依存関係を解決した状態で、アンインストールを行ってくれているのです。それでは再びrpmコマンドで、CUPSがアンインストールされているかを確認してみましょう。

# rpm -qa | grep cups
cups-filters-libs-1.0.35-15.el7_0.1.x86_64
cups-filesystem-1.6.3-17.el7.noarch
……以下略……

「cups-1.6.3-17.el7.x86_64」が表示されないことから、アンインストールされたとわかります。yumコマンドでアンインストールされているかどうか確認するには、次のコマンドを実行します。

# yum list installed | grep cups

やはり「cups.x86_64 1:1.6.3-17.el7 」は表示されません。yumコマンドでもアンインストールできたことが確認できました。

無事アンインストールできたので、CUPSパッケージのインストールに移りましょう。rpmコマンドでインストールする場合には、次のようにオプションを指定します。

# rpm -ivh cups-1.6.3-17.el7.x86_64.rpm 

これを実行するためには、引数に指定している「.rpm」ファイルが必要です。次のコマンドでダウンロードします。

# wget ftp://fr2.rpmfind.net/linux/centos/7.1.1503/os/x86_64/Packages/cups-1.6.3-17.el7.x86_64.rpm

オプションについては、ivhの3つを指定するのが一般的です。それぞれ、次のような意味を持ちます。

オプション 意味 機能
i install インストールを実行する
v verbose 詳細を表示する
h hash インストールの進捗状況を#の数で表示する。ハッシュとは#記号のこと

実行結果はどうかというと……またしてもエラーが出てしまうと思います。

error: Failed dependencies:
     ghostscript-cups is needed by cups-1:1.6.3-17.el7.x86_64

先ほどCUPSと一緒にYUMで削除してしまった「ghostscript-cups」が必要だというエラーです。RPMでインストールする場合、インストールするパッケージが依存するパッケージがインストール済みでなければならないのです。

それでは依存関係を保ってくれるYUMではどうでしょうか? 次のコマンドでインストールを行ってみます。

# yum install cups

yumコマンドでは無事、インストールが完了します。YUMでは、CUPSが依存するパッケージも合わせてインストールしてくれるからです。

もう1つ注目したいのが、YUMではrpmファイルを事前にダウンロードしなかった点です。上記のコマンド1つでインストールが完了します。実はここに、YUMとRPMとの大きな違いがもう1つ現れています。

YUMは、インターネット上にあるリポジトリ[2]からパッケージをダウンロードしてきます。そのため、RPMのように「rpmファイルをダウンロードする」手間を省くことができます[3]。逆にいうと、YUMにはインターネットに接続していなければ利用できないという制約がある、ということになります[4]

以上で、Red Hat系ディストリビューションでパッケージ管理ツールを使ったインストールが完了です。ここまでの内容をまとめておきましょう。

パッケージ管理ツールでインストールする方法まとめ

  • yumコマンドを使う場合は、yum install <インストールしたいパッケージ名>
  • rpmコマンドを使う場合は、rpm -ivh <インストールしたいパッケージのrpmファイル>

パッケージ管理ツールでアンインストールする方法まとめ

  • yumコマンドを使う場合は、yum remove <アンインストールしたいパッケージ名>
  • rpmコマンドを使う場合は、rpm -e <アンインストールしたいパッケージ名 >

ポイント

  • YUMは依存関係のあるパッケージも合わせてインストール/アンインストールしてくれるが、RPMはしてくれない。
  • YUMはリポジトリからパッケージのダウンロードを行ってくれるが、RPMは基本的にダウンロードしてからインストールする。

ここまで読んでみて「YUMのほうが便利だな」と感じた方が多いのではないでしょうか。確かにそのとおりで、YUMのほうがインストールがしやすく、またパッケージ間の依存性に悩まされないので、基本的にはYUMを使うのがよいでしょう。ただし、YUMリポジトリに登録されていないRPMパッケージ[5]をインストールする際には、RPMを使うことになります。

[2]: パッケージを蓄積している領域。yumコマンドは、インターネットに公開されているYUMサーバからパッケージをダウンロードし、自分(ローカル)のYUMリポジトリに保管します。

[3]: rpmコマンドでリモートのURLを指定してインストールを行うこともできますが、リポジトリの使用はありませんのでYUMとは意味合いが異なります。

[4]: 厳密にはローカルリポジトリを指定することもできますが、これには設定が必要です。

[5]: YUMでは内部でrpmコマンドを呼び出していると先に説明しました。つまり、YUMリポジトリに保管されているのはRPMパッケージです。

次のページ
yumコマンドとrpmの代表的なオプション・サブコマンド

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
  • hatena
Linuxを知らない人のためのLPICレベル1【101試験】入門連載記事一覧

もっと読む

この記事の著者

土橋 直樹(システムアーキテクチュアナレッジ)(ツチハシ ナオキ)

システムアーキテクチュアナレッジにて講師を行う傍ら、IT技術情報ブログ「テックプロジン」や、スイーツ口コミサイト「スイートウォント」など、各種Webサービスの開発・運営に携わる。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事をシェア

  • Facebook
  • Twitter
  • Pocket
  • note
  • hatena
HRzine
https://hrzine.jp/article/detail/34 2016/10/04 12:16

Special Contents

AD

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

HRzine Day(エイチアールジン・デイ)は、人が活き会社が成長する人事のWebマガジン「HRzine」が主催するイベントです。毎回、人事の重要課題を1つテーマに設定し、識者やエキスパードが持つ知見・経験を、参加者のみなさんと共有しています。

2024年2月1日(木)12:00~17:40

イベントカレンダーを見る

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング