Linuxについて
前回、Google Cloud Platform (GCP)のCompute Engineでインスタンスを立ち上げるところまでやりました。
そこにApacheやら何やらを入れようと思ったのですが、その過程でLinuxに関する知識が全然無いことを感じたので軽くまとめてみたいと思います。
Linuxとは
そもそもLinuxとは何ぞやという話ですが、Unix系OSの一種です。
オープンソースで開発されており、誰でも自由に使用できます。
ちなみに脱線しますがmacOSもUnixをベースに開発されています。
Linuxと聞いて皆さんがイメージするのはサーバー用途としての役割、という方も多いかもしれません。
例えばAWSのEC2でもAmazon LinuxというOSが提供されています。Amazon LinuxはAWS上でパフォーマンスが向上するようにチューニングされたディストリビューション(後述)です。
僕も何となくサーバー周りのイメージを持っていましたが、今までサーバー周りの設定を触ったことが無かったこともあり全然勉強してきませんでした。
せいぜいコマンド(Unixコマンド)をいくつか使うぐらいでした。
そういえば大学の時の情報の授業でLinuxを使ったような気がします。当時はWindowsしか触ったことが無かったのでよくわからんという印象しかありませんでした...。
Linuxディストリビューション
さて、Linuxにはいくつかの主要なディストリビューションがあります。
ディストリビューションとは簡単に言えば必要なソフトウェアをまとめて使いやすくした上で配布されたパッケージのことです。
主なLinuxディストリビューションはDebian系とRed Hat系に分けられます。
Debian系とRed Hat系の違いはパッケージ管理の違いです。
パッケージ管理が異なるのでライブラリのインストール時のコマンドも異なります。
Debian系ではapt
またはapt-get
を、Red Hat系ではrpm
またはyum
を使用します。
ちなみにapt
はapt-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 Linuxはyum
が使えるとのことからRed Hat系に属すると思います。
まとめ
簡単にではありますがLinux周りについて書いてみました。
サーバーの設定をする上でこの辺りの知識をもっと付ける必要があると感じました。
apt
コマンド等はDockerfileに書いてあるのをちらっと見たことがあるぐらいでディストリビューションの違い等も知らなかったのでまた深く掘り下げてみたいです。