Linuxについて

前回、Google Cloud Platform (GCP)のCompute Engineでインスタンスを立ち上げるところまでやりました。

そこにApacheやら何やらを入れようと思ったのですが、その過程でLinuxに関する知識が全然無いことを感じたので軽くまとめてみたいと思います。

Linuxとは

そもそもLinuxとは何ぞやという話ですが、Unix系OSの一種です。

オープンソースで開発されており、誰でも自由に使用できます。

ちなみに脱線しますがmacOSUnixをベースに開発されています。

Linuxと聞いて皆さんがイメージするのはサーバー用途としての役割、という方も多いかもしれません。

例えばAWSのEC2でもAmazon LinuxというOSが提供されています。Amazon LinuxAWS上でパフォーマンスが向上するようにチューニングされたディストリビューション(後述)です。

僕も何となくサーバー周りのイメージを持っていましたが、今までサーバー周りの設定を触ったことが無かったこともあり全然勉強してきませんでした。

せいぜいコマンド(Unixコマンド)をいくつか使うぐらいでした。

そういえば大学の時の情報の授業でLinuxを使ったような気がします。当時はWindowsしか触ったことが無かったのでよくわからんという印象しかありませんでした...。

Linuxディストリビューション

さて、Linuxにはいくつかの主要なディストリビューションがあります。

ディストリビューションとは簡単に言えば必要なソフトウェアをまとめて使いやすくした上で配布されたパッケージのことです。

主なLinuxディストリビューションDebian系とRed Hat系に分けられます。

Debian系とRed Hat系の違いはパッケージ管理の違いです。

パッケージ管理が異なるのでライブラリのインストール時のコマンドも異なります。

Debian系ではaptまたはapt-getを、Red Hat系ではrpmまたはyumを使用します。

ちなみにaptapt-getの設計上のミスを改善したものだそうですのでaptを使うことが推奨されているようです。

APT is a vast project, whose original plans included a graphical interface. It is based on a library which contains the core application, and apt-get is the first front end — command-line based — which was developed within the project. apt is a second command-line based front end provided by APT which overcomes some design mistakes of apt-get.

引用元:Debian 管理者ハンドブック

色々とライブラリ等を入れようとしたときに躓いたのですが、それはこの系統(とコマンド)の違いを理解していなかったからでした。

ちなみに先程出てきたAmazon Linuxyumが使えるとのことからRed Hat系に属すると思います。

まとめ

簡単にではありますがLinux周りについて書いてみました。

サーバーの設定をする上でこの辺りの知識をもっと付ける必要があると感じました。

aptコマンド等はDockerfileに書いてあるのをちらっと見たことがあるぐらいでディストリビューションの違い等も知らなかったのでまた深く掘り下げてみたいです。