コマンドの仕組み・インストールしたソフトウェアの仕組み
(以下、辞書的な読み物として・・・)
ターミナルで実行されたコマンドを読み取るのは、シェル。
・シェル
「ターミナルとOSを繋ぐ窓口役」のような存在。
ターミナルから入力されたコマンドを読み取って、OSに対して指示を渡し、結果をターミナルに返して表示や実行などの動作をさせる。
シェルにはさまざまな種類があり、それぞれプロンプトやコマンド実行後の出力で、表示と挙動が異なる。・・・zsh:2019年にmacOSの標準シェル。
・zsh
シェルの1つ。プロンプトは%。
# ターミナル
% echo $SHELL
# 出力結果=> /bin/zsh
zshは、. から始まるドットファイルを作成・編集することで、設定を行う。
環境構築では、.zshrcに設定を記述して、PATHにアプリケーションの場所を示すことでコマンドを使用可能にする。
・PATH
「環境変数」と呼ばれるOS用の変数のこと。PATHには、複数の絶対パスの情報が保存されている。
コマンドが入力されたとき、シェルはPATHに記述されたパスのディレクトリ内のファイルを検索する。
PATHに絶対パスを保存してアプリケーションのありかを示せば、どこからコマンドを実行してもアプリケーションのコマンドを打つ・・・「PATHを通す」ことができる。
環境構築では、.zshrcにインストールしたrbenvやMySQLのコマンドをすべてのディレクトリから使用できるようにPATHを通す作業を行う。
# rbenvのパスを通す
% echo 'eval "$(rbenv init -)"' >> ~/.zshrc
# MySQLのパスを通す
% echo 'export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"' >> ~/.zshrc
echoコマンド:
>>に続けてファイル名を指定することで、ファイルに文字を追加できるLinuxコマンド。
.zshrcにrbenvの設定を反映するためのコマンドを記述することで、PATHを通す。
______________________
コマンドが実行されると、シェルがそれを読み取ってOSに指示を出す。OSは指示を受けて、コマンドに合ったアプリケーションを動作させる。
・・・後からPCに追加する必要があるがよく利用されるアプリケーションは、コマンドラインツールとしてまとめられている。
・コマンドラインツール
コマンドで操作するアプリケーションのまとまり。
導入することで、アプリケーションをPCにインストールできる。
・Command Line Tools
macOS専用のコマンドラインツール。
Linuxコマンド以外で操作するアプリケーションの多くはCommand Line Toolsのインストールによって、まとめてPCに導入できる。
______________________
・依存、依存関係
あるファイルやライブラリが正常に動作するために、別のファイルやライブラリによる処理と結果が必要になる状態を、依存。
依存している関係を、依存関係。
例えば、ライブラリAがあり、ライブラリAの処理を利用して動作するライブラリBがあるとき、「AとBは依存関係にある」。
______________________
アプリを開発する際には、ライブラリを取り込み使用することで、必要な機能を1から作る手間を省き、独自の実装部分だけを開発できる。
こうした外部からインストールできる処理のまとまりにもバージョンがあり、互いに複雑な依存関係を持っている。
依存関係を考慮して管理するのが、パッケージ管理。
・パッケージ管理
パッケージ:プログラムや処理をひとまとめにしたもの。
パッケージ管理:パッケージやパッケージが持つライブラリなどの依存関係を考慮して、インストールやバージョンアップを行う管理のこと。
1つのパッケージを利用したい場合、そのパッケージと依存関係にあるパッケージも合わせてインストールする。
GemfileとBundlerによってRubyのパッケージ(Gem)を管理していたものも、パッケージ管理に含まれる。
このような管理を自動的に行なってくれるツール・・・「パッケージ管理ツール」または「パッケージマネージャー」。
・Homebrew
macOSのパッケージ管理ツール。
macOS上で動作するアプリケーションの多くが、Homebrewからインストール可能。
# Homebrewのインストール
% ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
コマンド 説明
brew -v Homebrewのバージョンを表示する
brew install [パッケージ名] パッケージをインストールする
brew uninstall [パッケージ名] パッケージをアンインストールする
brew list インストールしたパッケージを表示する
brew search インストール可能なパッケージを表示する
brew update インストールしたパッケージを最新へ更新する
・Node.js
本来ブラウザ上で動くJavaScriptを、サーバーサイドで動作させる「実行環境」。
# Node.jsのインストール
% brew install nodejs
Node.jsがインストールされると、サーバーサイドで利用できるJavaScriptのパッケージを活用できる。パッケージは依存関係を生むため、YarnなどのNode.jsのパッケージ管理ツールがある。
・Yarn
Node.jsの環境上で動作するパッケージを管理する、(サーバーサイドで動作する)JavaScriptのパッケージ管理ツール。
# Homebrewを使ってYarnをインストール
% brew install yarn
______________________
プロジェクトや言語のバージョンを管理するのが、バージョン管理。
・バージョン管理
変更したバージョンを記録あるいは外部から保存して、過去のバージョンや最新のバージョンに切り替えること。
バージョン管理をすることで、パッケージとの依存関係の問題を解消したり、変更して問題が発生したプロジェクトを過去の安定したバージョンに切り替える、などの対応ができる。
環境構築では、Homebrewでrbenvをインストールして、Rubyのバージョンを管理できる。
・rbenv
Rubyのバージョンを切り替えるためのバージョン管理ツール。
複数のバージョンのRubyをダウンロードしておいて、使用するRubyのバージョンをディレクトリごとに指定することも可能。
# rbenvのインストール
% brew install rbenv
Macでは、はじめからRubyが使用可能だが、環境構築ではrbenvを使って新たにRubyをインストールし直して使用する。
これは、Macではじめから入っているRubyでは、バージョンを変更しづらく、パッケージとの依存関係の問題を引き起こしやすくなってしまうためです。
コマンド、説明
rbenv -v
rbenvのバージョンを表示
rbenv install [バージョン]
Rubyバージョンを指定してインストールする。
rbenv uninstall [バージョン]
Rubyバージョンを指定してアンインストールする。
rbenv versions
インストールされているRubyバージョンの一覧を表示する。
rbenv global [バージョン]
すべてのディレクトリで使用するRubyバージョンを
切り替える。
rbenv local [バージョン]
カレントディレクトリで使用する
Rubyバージョンを切り替える。
rbenv rehash
RubyやGemに関するコマンドをバージョン変更後も
使用できるようにする。
2020/12/05
この記事が気に入ったらサポートをしてみませんか?