目的
ソフトウェアについて理解を深める
目次
はじめに
今回は、なぜターミナルでコマンドを実行するといろいろな動作が行われるのか、その仕組みについて詳しくまとめたいと思います。
シェルとは
シェル
とは、ターミナルとOSを繋ぐ窓口役のようなものです。
ターミナルで実行されたコマンドはシェル
によって読み込まれ、OSに指示を渡した後、結果をターミナルに返して表示や実行などの動作をさせます。
また、シェル
にもさまざまな種類があり、それぞれプロンプトやコマンド実行後の出力で、表示と挙動が若干異なります。
zsh
zsh
はシェルの1つであり、2019年以降のmacOS標準シェルです。
zsh
は、.から始まるドットファイルを作成・編集することで、設定を行うことができます。
PATH
PATH
とは、「環境変数」と呼ばれるOS用の変数のことです。PATH
には、複数の絶対パスの情報が保存されており、コマンドが入力されたときに、シェルはPATH
に記述されたパスのディレクトリ内のファイルを検索します。
つまり、PATH
に絶対パスを保存してアプリケーションのありかを示せば、どこからコマンドを実行してもアプリケーションのコマンドを打つことができます。
ちなみにPATHにアプリケーションのありかを示して、すべてのディレクトリからコマンドを使用可能にすることを、一般的に「PATHを通す」
と表現するようです。
コマンドラインツールとは
コマンドラインツール
とは、コマンドで操作するアプリケーションのまとまりです。
コマンドラインツール
を導入することで、OSが初めからコマンドで操作できるアプリケーション以外のアプリケーションをPCにインストールできます。
Command Line Tools
Command Line Tools
とはmacOS専用のコマンドラインツールです。
macOSでは、元々Linuxコマンドで操作できるアプリケーションや機能を標準搭載しています。Linuxコマンド以外で操作するアプリケーションの多くはCommand Line Tools
のインストールによって、まとめてPCに導入できます。
パッケージ管理とは
まずパッケージ
とは、プログラムや処理、複数のライブラリをひとまとめにしたもののことです。
そしてパッケージ管理
とは、パッケージやパッケージが持つライブラリなどの依存関係を考慮してインストールやバージョンアップを行う管理のことです。
1つのパッケージを利用したい場合、そのパッケージと依存関係にあるパッケージも合わせてインストールしてくれます。
このような管理を自動的に行なってくれるツールのことを、パッケージ管理ツール
またはパッケージマネージャー
と呼びます。
Homebrew
Homebrew
とはmacOSのパッケージ管理ツールです。
macOS上で動作するアプリケーションの多くがHomebrew
からインストールできます。
Homebrew
を使うことにより、依存関係のあるパッケージが正しく動作するよう、複数のパッケージのバージョンをコントロールしてインストールすることが可能です。
基本的なbrewコマンド
として下記のようなコマンドがあります。
コマンド | 説明 |
---|---|
brew -v | Homebrewのバージョンを表示する |
brew install [パッケージ名] | パッケージをインストールする |
brew uninstall [パッケージ名] | パッケージをアンインストールする |
brew list | インストールしたパッケージを表示する |
brew search | インストール可能なパッケージを表示する |
brew update | インストールしたパッケージを最新へ更新する |
Node.js
Node.js
は、本来ブラウザ上で動くJavaScriptをサーバーサイドで動作させる「実行環境」です。
Node.js
がインストールされると、サーバーサイドで利用できるJavaScriptのパッケージを活用できます。
もちろん、パッケージは依存関係を生むため、YarnなどのNode.jsのパッケージ管理ツールもあります。
Yarn
Yarn
とはNode.jsの環境上で動作するパッケージを管理する、JavaScriptのパッケージ管理ツールです。つまり、サーバーサイドで動作するJavaScriptのパッケージを管理するツールのことです。
Ruby on Railsでは、バージョン6系からJavaScriptのパッケージをデフォルトで利用するようになったため、プロジェクトの作成にYarnのインストールが必須となっています。
バージョン管理とは
変更したバージョンを記録あるいは外部から保存して、過去のバージョンや最新のバージョンに切り替えることなどをバージョン管理
と呼びます。
バージョン管理
をすることで、パッケージとの依存関係の問題を解消したり、変更して問題が発生したプロジェクトを過去の安定したバージョンに切り替える、などの対応ができます。
rbenv
rbenv
はRubyのバージョンを切り替えるためのバージョン管理ツールです。
複数のバージョンのRubyをダウンロードしておいて、使用するRubyのバージョンをディレクトリごとに指定することも可能になります。
基本的なrbenvコマンド
として以下のようなコマンドがあります(rbenvの拡張機能であるruby-buildという管理ツールが提供するコマンドも含めています)。
コマンド | 説明 |
---|---|
rbenv -v | rbenvのバージョンを表示する |
rbenv install [バージョン] | Rubyバージョンを指定してインストールする |
rbenv uninstall [バージョン] | Rubyバージョンを指定してアンインストールする |
rbenv versions | インストールされているRubyバージョンの一覧を表示する |
rbenv global [バージョン] | すべてのディレクトリで使用するRubyバージョンを切り替える |
rbenv local [バージョン] | カレントディレクトリで使用するRubyバージョンを切り替える |
rbenv rehash | RubyやGemに関するコマンドをバージョン変更後も使用できるようにする |