Linuxの基礎知識

2017年9月24日日曜日

LAMP環境

LAMP(ランプ)環境」とは、Linuxの「L」。
Webサーバを構築するApacheの「A」。
データベースを構築するMySQLの「M」。
Webでよく利用されるPHPPerlPythonの「P」と、それぞれのソフトの頭文字を取ったものです。
Linuxでサーバ環境を整える際には、これらのソフトが必要になることが多いので、各ディストリビューションからLAMP環境を簡単に構築できる仕組みが提供されています。

パッケージ管理システム

Linuxでは必要なソフトを選択してインストールするのが一般的です。
しかしソフトはネット上に分散して置かれ、バージョンによって整合性が異なり、インストール時にオプションを指定したりと、運用には多くの専門知識が必要になります。
そうした煩雑なインストール作業を一手に担ってくれるのが「パッケージ管理システム」です。
WindowsやMacでいう、「インストーラー、アンインストーラー」のような役割を果たします。

ソフトの依存関係について

Linuxでソフトのインストールをする際に気をつけなければいけないのが、「依存関係(dependencies)」です。
依存関係とはあるソフトの動作に、別のソフトの機能が必要な関係をいいます。
そのようなソフトは単独で動作しないため、「依存関係にあるソフト」も同時にインストールする必要があります。
特定のWebサイトの閲覧には、ブラウザとプラグインが必要。という関係と同じです。

apt-get

書式:
apt-get [スイッチ] [オプション] [パッケージ]

apt-getコマンドは、Debian系のディストリビューション(DebianやUbuntu)のパッケージ管理システムであるAPT(Advanced Package Tool)ライブラリを利用してパッケージを操作・管理するコマンド

スイッチ
updateAPTライブラリのインデックスを更新
更新先は/etc/apt/sources.listに記述されています
upgradeシステムにインストールされているパッケージを最新バージョンにします
パッケージを新規にインストール・削除する必要がないパッケージのみが最新バージョンにアップグレードされます
dist-upgradeパッケージを新規にインストール・削除する必要の有無に関わらずパッケージをが最新バージョンにアップグレードします
ディストリビューションのアップグレード時に利用します
install パッケージ指定したパッケージをインストールします
remove パッケージ指定したパッケージを削除します

オプション
-dパッケージのダウンロードのみを行います。展開・インストールは行いません
-fパッケージの依存性がおかしくなった場合、その修復を試みます
-qquietモードです。進捗状況を表示しません
-uアップデートするパッケージの一覧を表示します
-sインストールするパッケージの一覧を表示します
-yインタラクティブ(ユーザーへの問い合わせ)に「yes」と答えます

使用例
ATPライブラリを最新版へ更新し(update)、インストールしているパッケージを最新バージョンにアップデート(upgrade)します。apt-getコマンドで最もよく利用する方法のひとつ
# apt-get update
# apt-get upgrade

dist-upgradeスイッチを使って、Debian 6.0(squeeze)から7.0(wheezy)へアップグレードします。

# apt-get dist-upgrade

APTライブラリを使って、C言語のコンパイラであるgccをインストールします。

# apt-get install gcc

便利なテキストエディタ「Emacs」もコマンド一発でインストールすることができます。

# apt-get install emacs


rpm

旧称「Red Hat Package Maneger」。
名前からわかるようにRed Hat系のディストリビューションで採用されたシステムです。
rpmパッケージで提供されたソフトを、簡単な「rpmコマンド」でインストールすることができます。
他にも、アップデート、パッチの適用、wgetコマンドを利用すれば、ネット上のrpmファイルをダウンロードしてインストールすることもできます。

yum

書式:
yum [オプション] [コマンド] [パッケージ]
yumコマンドは、Yellow Dog Linuxのディストリビューション(CentOSやFedora)のパッケージ管理システムであるYum(Yellowdog Updater Modified)を利用してパッケージを操作・管理するコマンド

スイッチ
info パッケージ指定したパッケージの詳細情報を表示します
listインストール可能なパッケージ情報を表示します
install パッケージ指定したパッケージをインストールします
update パッケージ指定したパッケージをアップデートします
パッケージを指定せずにコマンドを実行した場合は、インストールされている全てのパッケージがアップデートされます
remove パッケージ指定したパッケージを削除します
erase パッケージ指定したパッケージを削除します。removeと同義
search 文字列指定した文字列を含むパッケージ一覧を表示します

使用例
システムにインストールされている全てのパッケージを更新
# yum update
システムにインストールされているパッケージを表示します。表示結果をパイプ(|)に渡して、moreコマンドを実行すると便利
# yum list installed | more
パッケージ「emacs」を検索してみる
# yum search emacs
パッケージ「emacs」の詳細情報表示
# yum info emacs
パッケージ「emacs」をインストール
# yum install emacs

リポジトリ

それぞれのパッケージファイルを保持しているディレクトリやサイトのこと。
通常リポジトリというと外部サーバに保存されたパッケージ群を指しますが、自社サーバ内やDVDなどのメディアをリポジトリとして利用することもできます。

外部リポジトリ

リポジトリにはディストリビューションによって公式にサポートされた「公式リポジトリ」と、非公式の「外部リポジトリ」があります。
通常は公式のリポジトリを利用しますが、最新のバージョンや、特殊な用途のソフトを導入するには「外部リポジトリ」が必要になります。
そのための外部リポジトリが有志により管理されています。
その中でも有名なのが 「EPELリポジトリ」 「IUSリポジトリ」 「REMIリポジトリ」 「DAGリポジトリ」などです。
これらを追加することでyumコマンドでインストールできるソフトを拡張できます。
そのため別名、「拡張パッケージ」とも呼ばれています。
外部リポジトリの追加は、良いことばかりかというと、そうでもありません。
公式のものは厳格に依存関係のチェックや、脆弱性への対応を行っています。
しかし、外部のものはyumを利用して依存関係のチェックをしても、不具合の出るものがあります。
また脆弱性が見つかった場合の対応も、公式に比べ遅れることがあります。

クライアントとサーバ

普通クライアントというと取引先を想像しますが、サーバ管理においては、クライアントは「サービスを受ける側」を指します。
対してサーバは「サービスを提供する側」を指します。
自分のパソコン」と「VPSなどで提供されたサーバ」の関係なら、「自分のパソコン」がクライアント、「VPSなどで提供されたサーバ」がサーバです。
VPSなどで提供されたサーバ」と「サービスを利用する外部サーバ」の関係なら、「VPSなどで提供されたサーバ」がクライアントで、「サービスを利用する外部サーバ」がサーバになります。
このように相対的な関係になっているので、解説を読む時は注意してください。

ローカルとリモート

こちらも相対的な関係を示し、ローカルとはサーバやPCなどの「内部」を指し、リモートは「外部」を指します。
サーバにとって「ローカル環境」とは、「サーバ内部」を指します。
反対にクライアント(自分のパソコン)側から見れば「サーバ内部」は「リモート環境」となります。
外部(遠隔地)の環境をコントロールすることを、リモートコントロールといいます。

デーモン、パッケージ

Linuxではバックグラウンドで動作しているソフトウェアのことを「デーモン(Daemon)」と呼びます。
有名なhttpdやsshdの「d」はデーモンという意味です。
複数の機能を統合して1つのソフトにまとめているので、ソフトのことを代わりに「パッケージ」ということもあります。

ディレクトリとフォルダ

Linuxではフォルダのことをディレクトリと呼ぶのが一般的です。
Windowsでは「スタートメニューからプログラムにある○○」もしくはパスで「C:\Program File\…」といった表現をします。
Linuxではルートディレクトリ(一番上のディレクトリ)から「/var/www/index.html」というように指定します。
これは「varディレクトリの中にあるWWWディレクトリにあるindex.htmlというファイル」という意味です。

拡張子について

Linuxではすべてのファイルがテキストベースで作られているため、決まった拡張子がありません。
例えば設定ファイルの場合、ファイルのパスさえ間違えていなければ、拡張子が「txt」でも「ini」でも「cnf」でも全く同じ動作をします。
しかし無秩序に拡張子をつけると間違いの元なので、通常はWindowsやMacで使われる拡張子を付けます。

アカウントについて

Linuxではマルチユーザーを想定してシステムが構築されています。
そのため、ユーザーごとの特徴を把握して、適宜切り替える必要があります。
ユーザーには以下のタイプがあります。

システム管理者

システム管理者として「root(ルート)」というユーザーが定義されています。
rootユーザーのことを別名「スーパーユーザー」とも呼びます。
他にも「システム管理者」と呼ばれることもあります。
ややこしい限りですが、どの呼び方でも同じrootユーザーを示すので注意してください。

一般ユーザー、システムアカウント

システム管理者以外のユーザーを「一般ユーザー」といいます。
またソフトだけが利用する専用のアカウントを「システムアカウント」といいます。
webサーバであれば「apache」、メールソフトでいえば「postfix」など。

Copyright © 2010 休眠 | Free Blogger Templates by Splashy Templates | Layout by Atomic Website Templates