【ざっくりまとめ】Linuxパッケージのインストール方法を一通り

  • このエントリーをはてなブックマークに追加
  • Pocket

Linuxでのパッケージのインストールはいくつか方法がある。年々簡単になっていく傾向だ。

しかし、時には古い方法を用いないといけない場合もあり、知識としては全体像を知っておいたほうがいいだろう。

このページではLinuxパッケージのインストール方法についてまとめてお伝えした。参考にしていただければ幸いだ。

Linuxでのパッケージのインストール

依存関係

Linuxでは、ソースコードからコンパイルしてアプリケーションを導入するときは「configure」「make」「make install」とコマンドを入力するのが一般的だ。これは基本的にどのディストリビューションでも変わらない方法となっている。

しかしこの方法の場合、それぞれのパッケージの依存関係はユーザが自己解決しなければならない。依存関係とは「このパッケージにはあのパッケージのあのバージョンが必要で、先にこちらをインストールしないといけない」などパッケージ同士の関係のことだ。

依存関係問題の解決は大規模なアプリケーションの導入のとき、とても骨が折れる作業となる。

パッケージ管理

そこで大概の場合ディストリビューションにパッケージを管理する仕組みが備わっている。

パッケージを個別管理する場合rpmやdebなどが存在し、依存関係などが記述された、言うなれば「依存表」のようなものを持っている。それを元にyumやaptといったツールを使用して、依存関係を解決し、コマンドひとつでパッケージ郡をインストール出来るようになっている。

日常的にはyumやaptを使用して、パッケージをインストールした方が綺麗にパッケージを管理できるだろう。

このページではrpmやdebといったパッケージ毎のインストール、yumやaptといったパッケージ統合管理システムを使用した、パッケージのインストールについて紹介する。

configureなどを使ったベーシックなインストール

ベーシックな方法で、そのためむしろこの方法でインストールする機会は少ない。しかし、なんだかんだと必要なときがあり、知っておくと良いだろう。

CentOSでの下準備

CentOSの場合デフォルトでは開発環境などがインストールされていないため、コンパイルなどの作業ができない。そこで下準備をする。インストール時に大量のパッケージが導入されるので、仮想のスナップショットをとっておくか、とりあえず流れだけを把握しよう。 

# yum groupinstall "Development Tools"

$ yumdownloader --source gzip

# yum-builddep gzip-1.5-8.el7.src.rpm

特殊な下準備はここまで。

実際にやってみる

実際に最新のgzipのソースをwgetでもってきて自力でコンパイルインストールしてみよう。

ソースの入手と展開

$ wget http://ftp.gnu.org/gnu/gzip/gzip-1.8.tar.xz

ダウンロードしたファイルのあるディレクトリにて

$ tar -xvf gzip-1.8.tar.xz

$ cd gzip-1.8

configureを実行してみる

$ ./configure --help

gzip-configure

とするとconfigureに引渡しができるオプションが表示される。configureで諸々の引数を指定してmakeファイルを生成する。

またconfigureは環境の検査をする役割をもっている。現状のLinux環境で「ヘッダやライブラリは揃っているか?」などのチェックをしてくれる。

しかしconfigureも完璧ではないので検査にかからない、ユーザが自己判断しなければならない依存ライブラリなども多数存在している。基本的に必要なものはINSTALLやREADMEなどに記述されていることが多い。

今回はとりあえず何も指定せずにconfigureを実行してみる。

$ ./configure

configureが無事終了するとMakefileというファイルが生成される。これはmakeコマンドが読むレシピである。makeコマンドを実行してみよう。

$ make

これでバイナリが生成されるので、あとは所定の位置にできあがったバイナリ、プログラムやライブラリの類を設置すればよい。ひとつづつ手動で設置することは基本的にはなくMakefileの中にインストールするためのオプションが記述されている。

システムに書き込みを行うのでroot権限で

# make install

とすればよい、適切にプログラムがインストールされる。今回はconfigureの段階でなにも指定していなかったので「/usr/local/」の下に全てインストールされる。

アンインストールする場合は

# make uninstall

とすればよい。

しかしこの方法だとソースディレクトリを残しておかなければならないのが難点だろう。そのため後述するパッケージ管理システムを利用した方がOS内を綺麗に保つことが出来る。

CentOSの場合rpmとyum

CentOSに限らずRedhat系ディストリビューションは、rpmを採用していることがほとんどだ。このページでも概要はわかるが、下記などで詳しく説明している。

「spec」ファイルいわばパッケージ構築のレシピを元にパッケージが作成される。specファイルには依存関係の解決情報も含まれており、yumなどがそれをもとにパッケージを統合管理する形をとっている。

rpm個々のインストール

# rpm -ivh <パッケージ名>.rpm

yumによる統合管理

yumでrpmを管理する場合はリポジトリ、パッケージを集中管理するプールにパッケージ保存され、その中でyumがrpmの依存関係を解決し、必要なパッケージがインストールされるようになっている。

インストールされているパッケージを最新の状態にたもつ

# yum update

依存関係を解決しながら指定パッケージをインストールする。

# yum install <パッケージ名>

Debianの場合debとapt

Debian系ディストリビューションはパッケージをdeb形式のパッケージで管理する。レシピが複数に分割されており、rpmファイルと比較すると複雑な作りをしている。こちらも、依存関係情報を内包しておりaptなどを利用すると依存関係を自動解決しながらインストールを行ってくれる。

deb形式のパッケージを個々に扱うコマンドとしてdpkgコマンドがあり、aptコマンドで統合管理することになる。このページでも軽く解説をするが詳しくは下記の2ページをご参考に。

deb個々のインストール

# dpkg -i <パッケージ名>.deb

aptによる統合管理

debパッケージはaptにより強力に管理することが可能となっている。丁度yumと同じ立ち位置にあるシステムだ。

データベースにあるリポジトリの情報を更新

# apt-get update

インストールされているパッケージをアップグレード

# apt-get upgrade

パッケージをインストールする

# apt-get install <パッケージ名>

まとめ

このページではLinuxパッケージのインストール方法についてお伝えをしてきた。yumとaptだけでほとんどはインストール可能だが、できなかったときのために他の方法も概要は理解しておこう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*