はじめに
今回は私自身も何となくで知ったかぶりしている知識を丁寧にアウトプット
ソフトウェアの操作
シェル
ターミナルとOSを繋ぐ窓口役。混合しがち。
ターミナルから入力されたコマンドを読み取って、OSに対して指示を渡し、結果をターミナルに返して表示や実行などの動作をさせる。つまり、ターミナルとシェルは別物。
代表的なシェルとしてzch(%)やbash($)が挙げられる。
ちなみに%と$をプロンプトという。これはターミナルの入力直前に設置してある。
echo $SHELLで現在のシェルが確認できる。
PATH
環境変数と呼ばれるOS用の変数のこと。PATHには、複数の絶対パスの情報が保存されている。
コマンドが入力されると、シェルはPATHに記述されたパスのディレクトリ内のファイルを検索する。
#### パスを通すとは?
PATHにアプリケーションのありかを示して、すべてのディレクトリからコマンドを使用可能にすること。
例
# rbenvのパスを通す
% echo 'eval "$(rbenv init -)"' >> ~/.zshrc
# MySQLのパスを通す
% echo 'export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"' >> ~/.zshrc
echoコマンドは>>に続けてファイル名を指定すると、文字を追加できる。
コマンドとアプリケーションの関係
コマンドラインツール
コマンドで操作するアプリケーションのまとまり。
導入することで、OSが初めからコマンドで操作できるアプリケーション以外のアプリケーションをPCにインストールできる。
mac専用のコマンドラインツールはCommand Line Tools
これがあることで、Linuxコマンド以外のコマンドで結果を返したり、動作を行ったりできる。
依存関係
ファイルやライブラリが正常に動作するために、別のファイルやライブラリによる処理と結果が必要になる状態を依存と呼び、依存している関係のことを依存関係と呼びます。
例:Aライブラリが動作するためにはB・C・Dのライブラリが必要。
例:AライブラリのバージョンをあげすぎてB・C・Dが正常に作動しなくなる。
などなど。
後者のような場合は解決するツールが用意されているのがほとんど。
パッケージ管理ツール
パッケージ管理
まず、パッケージとはプログラムや処理をひとまとめにしたもののこと。ライブラリとも言うが、複数のライブラリをまとめていることもある。パッケージ管理とはパッケージやパッケージが持つライブラリなどの依存関係を考慮してインストールやバージョンアップを行う管理。
パッケージをインストールするときにまだインストールされていない必要なパッケージがあれば、合わせてインストールする。
Homebrew
macOSのパッケージ管理ツール。
最初はここから始まったが、全く意味がわからなかったな〜懐かしい。4ヶ月前。
バージョン管理ツール
バージョン管理
変更したバージョンを記録あるいは外部から保存して、過去のバージョンや最新のバージョンに切り替えることなどをバージョン管理と呼ぶ。
これを利用することで、パッケージの依存関係の問題を解消したり、変更して問題が発生したプロジェクトを過去の安定したバージョンに切り替える、などの対応ができる。
おわりに
言語化したことでぼんやりしていた知識が明確になった。基礎部分だけど、分からないままでは気持ち悪かったです。
気づいたら、0時回ってる。。。(泣)