【よく使うパッケージ管理システム】

Pocket

ターミナル操作が多くなり、apt-getやbrewなどを使う機会が増えてきました。
しかし、それぞれどう違うのか分からず調べて見ました。
忘備録としてポストします。

そもそもパッケージ管理システムとは

パッケージ管理システムとは、OSというひとつの環境で、各種のソフトウェアの導入と削除、そしてソフトウェア同士やライブラリとの依存関係を管理するシステムである。
(出典)Wikipedia

なるほど。
つまり、OSによって異なるってことなんですね。

 

何ができるの?

1.レポジトリの購読

インターネット上(やインストールCD上)のパッケージレポジトリを指定して、必要に応じてローカルのパッケージリストを更新する。また、パッケージ名や説明を検索して必要なパッケージを探すことができる。

2.ソフトウェアパッケージのインストール・削除

パッケージ名やパッケージファイルを指定してソフトウェアのダウンロードや完全性の検証、インストールをすることができる。ソースコードや設定ファイルをパッケージ化して、インストールすることができる。設定ファイルなどを完全に削除することもできる。

3.依存関係の解決

あるパッケージに必要なソフトウェアを自動的にインストールしたり更新することができる。また、同時にインストールまたは更新できないソフトウェアパッケージのインストールや更新を回避できる。

4.設定管理

パッケージの設定スクリプトを使って、自動的に設定を行える。競合する機能をもつソフトウェアで、どちらを優先して使うかを設定できる。

(出典)Wikipedia

結構いろんなことできるんですね。
ソフトウェアパッケージのインストールと削除のみだと思ってました。
たしかに依存関係の解決や設定管理をしてくれている気がしますが、気が付かなかったです。

 

色んな管理システムがあるけどどう違うの?

apt-get

Debianプロジェクトが開発したパッケージ管理システム。Fedora CoreなどのRPMパッケージを利用している場合でも,apt-rpmを使うことでapt-getコマンドを利用できる。apt-getはパッケージがアップロードされているサーバーに問い合わせて,所望のパッケージのダウンロードからインストールまでを自動的に実施するコマンド。なお,依存関係があるパッケージ(動作に必要な他のパッケージ)も自動的に入手してインストールする。システムに導入済みのパッケージのアップデートもできる。
(出典)IT PRO

yum

米Duke大学のYumプロジェクトが,Yellowdog Linux向けに開発したパッケージ管理システム。Fedora Coreなどでも標準として採用されている。yumはパッケージがアップロードされているサーバーに問い合わせて,パッケージのダウンロードからインストールまでを自動的に実施するコマンド。また,依存関係があるパッケージ(動作に必要な他のパッケージ)も自動的に入手してインストールする。システムにインストール済みのパッケージのアップデートも可能。
(出典)IT PRO

rpm

米Red Hat社が開発したパッケージ管理システム。パッケージのインストールやアンインストールを行う。インストールの際は依存関係のあるパッケージ(動作に必要な他のパッケージ)を調べ,もしシステムにそれらパッケージが存在しない場合は,その旨をユーザーに通知する。また,アンインストールする際に,そのパッケージが他パッケージと依存関係がある(他のパッケージの動作に必要とされる)場合には,アンインストールできない旨を通告する。さらに,既にシステムにインストール済みのパッケージをチェックすることも可能。パッケージのインストール,アンインストール,アップデートには管理者権限が必要。
(出典)IT PRO

homebrew

Homebrew(ホームブルー)は、Mac OS Xオペレーティングシステム上でソフトウェアの導入を単純化するパッケージ管理システムのひとつである。MacPortsやFinkと同様の目的と機能を備えている。
(出典)Wikipedia

といえど、Macユーザーならまずhomebrewを使いますよね。
だけど、何ができるかいまいちわかっていない人も多いかと思います。
そんな人に細かく説明してくれている記事がありました。
http://qiita.com/omega999/items/6f65217b81ad3fffe7e6

いままでなんで周りがhomebrewをインストールしてからはそればかり使うのかがわかりました。
端的に言うとMacユーザーだったからなんですね。
なるほど。

普段そこまで使わないからこそ、こうやって忘備録としてポストするのも悪くないですね。

Pocket