コマンドの仕組みと管理ツール

 環境構築の時に実行するコマンドの仕組みや、インストールできるソフトウェアの仕組みについてまとめておきます。

 

ターミナルでコマンドを実行できる理由

 ターミナルでコマンドを実行できる理由は、「シェル」が、ターミナルから入力されたコマンドを読み取ってOSに指示を出しているからです。シェルはターミナルとOSを繋ぐ役割を果たす存在であり、2019年にmacOSの標準シェルが「zsh」(ズィーシェル)となりました。

 またシェルはコマンドが入力された時に「PATH」に記述されたパスのディレクトリ内のファイルを検索します。PATHとは、OS用の変数である「環境変数」のことを指します。このPATHに複数の絶対パスの情報が保存されています。

 

コマンドを追加したいときは?

 OSは指示を受けてコマンドに合ったアプリケーションを動作させますが、全てのアプリが動くわけではありません。OSに初めから入っていないアプリを動かしたい場合はコマンドラインツール」を使います。

 コマンドラインツールとは、コマンドで操作するアプリケーションのまとまりのことです。これを導入すれば、コマンドで操作できるアプリを増やせます。gitコマンドでGitを操作できるのもコマンドラインツールのインストールのおかげです。

 

依存関係を解消させる方法

 あるファイルを正常に動作させるためにはそのファイルに紐づいた別のファイルの処理が必要になる場合があります。これを依存関係と言います。そして、1つのファイルだけバージョンが更新されることによって、期待した動作が得られないという問題が発生する場合があります。このような問題を解決する方法が「パッケージ管理ツール」にあります。

 macOSのパッケージ管理ツールとして「Homebrew」があります。macOSで動作するアプリの多くがHomebrewからインストールできます。これによって複数のパッケージのバージョンをコントロールできます。

 環境構築時にHomebrewを用いてインストールできるものに「Node.js」があります。Node.jsは本来ブラウザで動作するJavaScriptをサーバーサイドで動作させる「実行環境」のことです。Node.jsのインストールによってサーバーサイドで利用できるJavaScriptのパッケージを活用できます。さらにこのNode.jsの環境上でのパッケージを管理するツールのことを「Yarn」と言います。環境構築時にHomebrewを使ってYarnをインストールできます。

 またプロジェクトや言語のバージョンを管理する「バージョン管理ツール」として「rbenv」があります。これはRubyのバージョンを切り替えられるものであり、Homebrewでインストールできます。