序2-5.パッケージ
序2-5.パッケージ
LinuxのカーネルとOSの最低限の機能を収めただけのコンピュータでは、普段皆さんが使っているコンピュータのようにいろいろな機能を使う事はできません。インターネットのWebページも見れないし、音楽も聞けないし、ゲームも出来ません。最近のディストリビューションは、そういった様々な機能も同時にインストールしてくれるので困ることは少ないのですが、追加で機能を追加したくなることもあります。いわゆるインストールです。
Linuxでは元来、ソースコードをCDやUSBで持ってきて自力でコンパイルして・・・という手順を踏んでいましたが、これは非常に敷居の高いものでした。また、あるソフトウェアを動作させようとするなら、ライブラリというものが必要になることもあり、ライブラリのインストールも行わなければなりません。
例えばですが、イラストソフトをインストールするとします。イラストソフトがイラストソフトとして機能するためには、以下のような機能が必要です。
色を表示する機能
マウスでクリックされたりペンタブレットで描かれたポイントに描画する機能
筆圧に応じて濃淡を調整する機能
ペンタブレットを認識する機能
ペンタブレットの筆圧検知を認識する機能
既存の画像を開く機能
描いたイラストを画像ファイルとして出力する機能
etc…
など、実際に絵を描くときに様々な画材が必要なのと同様に、様々な機能が必要となってきます。ライブラリは、これらの機能をPCで使えるようにしてくれます。ライブラリファイルを共有ライブラリに入れておくと、他のイラストソフトをインストールした際にもライブラリをわざわざインストールしなおすことなく上記の機能を共有して使うことができます。共有ライブラリは/libもしくは/usr/libに格納されています。
この、「あるソフトウェアを使うのには、あるライブラリが必要」という関係性を依存性と呼びます。ソフトウェアのプログラムをインストールすればそれで使えるようになる・・・というものではなかったのです。
このように素のLinuxでソフトウェアをインストールするのはかなり難しく、ソースコードのビルドもライブラリの用意も、初心者には厳しいでしょう。今でこそWeb検索すれば手順は見つかりますが、一昔前は書籍を探して参照するか、深い技術知識が必須でした。そこで、最近のLinuxにはこういったソフトウェアとライブラリの依存性を解決してくれるパッケージ管理システムというものが標準搭載されています。あるソフトウェアと、その実行に必要なライブラリをひとまとめにしたパッケージを簡単にインストール、アンインストールなどが出来ます。つまり、「絵を描きたい!」って人向けに「お絵描きセット」を提供してくれてるわけです。今でこそ他のOSでも当たり前となっている機能ですが、一度上記の手順でLinuxのソフトウェアインストールを試してみるとありがたみがとてもよくわかります。ただし、パッケージ管理システムはインターネットに接続されていなければ利用できません。
パッケージ管理システムには色々な種類があり、ディストリビューションによって採用されているものが違います。例えば、Red Hat系ではrpm、yum、dnf。Debian系ではdpkgやaptなどが採用されています。その他、Slackware系や独立系では、slackpkg、YaST、Pacmanなどが利用され、ディストリビューションに依存しない(どんなディストリビューションでも使える)パッケージ管理システムとしてsnap、Flatpackがあります。
(番外として、MacではHomeBrew、Windowsではwingetなどがパッケージ管理システムとして存在しますが、一般ユーザーが使うことはあんまりないと思います)
序2-5-2. リポジトリ(Repositry)
パッケージ管理システムは、インターネット上にあるパッケージを無作為に検索してパッケージをインストールするのではありません。リポジトリというデータベースからパッケージを探してインストールします。ざっくり言えばパッケージのカタログみたいなものです。参照するリポジトリはパッケージ管理システムによって異なります。リポジトリのリストは/etc/{dnfやaptなどパッケージ管理システム名}に保管されていることが多くなっています。デフォルトで参照しているリポジトリに欲しいパッケージがなければ、自分でリストにリポジトリ(カタログ)を追加すればインストールが可能になります。
ここまでで、Linuxをインストールする前に頭に入れておいて欲しい内容をざっくり説明しました。本当に本気で説明するとまだまだ紙面が必要になりますが、最低限必要な知識だと思っておいてください。次の資料で、実際に仮想環境にLinuxをインストールします。