はじめに
今回はプログラミングにおける環境構築についての基礎知識についてアウトプットしていこうと思います!
ソフトウェアの操作
シェル
シェルは、ターミナルとOSをつなぐ窓口役のような存在です!
ターミナルから入力されたコマンドを読み取って、OSに対して指示を渡し、結果をターミナルに返して表示や実行などの動作をさせます!
シェルにも様々な種類があり、その中でも2019年にmacOSの標準シェルとなったzshについて紹介しようと思います!
zsh
zshはシェルの1つです!
ターミナルでeche $SHELLというコマンドを実行すると今現在使われているシェルが分かります!
zshは、.から始まるドットファイルを作成、編集することで、設定を行うことができます!
環境構築では、.zshrcに設定を記述して、PATHにアプリケーションの場所を示すことでコマンド使用可能にします!
PATH
PATHとは、環境変数と呼ばれるOS用のことです!
PATHのは、複数の絶対パスの情報が保存されているので、コマンドが入力されたとき、シェルはPATHに記述されたパスのディレクトリ内のファイルを検索します!
これにより、PATHに絶対パスを保存してアプリケーションのありかを示せば、どこからコマンドを実行してもアプリケーションのコマンドを打つことができます!
PATHにアプリケーションのありかを示して、全てのディレクトリからコマンドを使用可能にすることを、一般的にPATHを通すと表現します!
# rbenvのパスを通す % echo 'eval "$(rbenv init -)"' >> ~/.zshrc # MySQLのパスを通す % echo 'export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"' >> ~/.zshrc
ここで使われているechoコマンドは、>>に続けてファイル名を指定することで、ファイルに文字を追加できるLinuxコマンドです!
コマンドとアプリケーションの関係
OSは指示を受けて、コマンドにあったアプリケーションを動作させます!
OSに初めから入っていてすぐに動作できるアプリケーションもあればそうでないものもあります!
後からPCに追加する必要があり、よく利用されているアプリケーションはコマンドラインツールチオしてまとめられています!
コマンドラインツール
コマンドで操作するアプリケーションのまとまりです!
コマンドラインつーるを導入することで、OSが初めからコマンドで操作できるアプリケーション以外のアプリケーションをPCにインストールできます!
Command Line Tools
macOS専用のコマンドラインツールのことです!
macOSでは、元々Linuxコマンド以外で操作できるアプリケーションや機能を標準搭載しています!Lunuxコマンド以外で操作するアプリケーションの多くがCommand Line Toolsのインストールのよって、まとめてPCに導入できます!
パッケージとバージョンの管理
依存関係
あるファイルやライブラリが正常に動作するために、別のファイルやライブラリによる処理と結果が必要になる状態を依存と呼び、依存している関係のことを依存関係と呼びます!
依存関係の管理については人が行おうとすると、ほぼ確実に問題が生じます!
これには、この問題を回避、解決するツールが用意されている場合がほとんどです!
パッケージ管理
パッケージとは、プログラムや処理をひとまとめにしたもののことです!
ライブラリのようですが、パッケージでは複数のライブラリをまとめることができます!
また、パッケージ管理とは、パッケージやパッケージが持つライブラリなどの依存関係を考慮してインストーすやバージョンアップを行う管理のことです!
このような管理を自動的に行ってくれるツールのことを、パッケージ管理ツールまたはパッケージマネージャーと呼びます!
Homebrew
macOSのパッケージ管理ツールです!
macOS上で動作するアプリケーションの多くがHomebrewからインストールできます!
Homebrewを使うことにより、依存関係のあるパッケージが正しく動作できるよう、複数のパッケージのバージョンをコントロールとしてインストールできます!
コマンドには以下のものがあります!
- Homebrewのバージョンを表示するbrew-v
- パッケージをインストールするbrew install[パッケージ名]
- パッケージをアンインストールするbrew uninstall[パッケージ名]
- インストールしたパッケージを表示するbrew list
- インストール可能なパッケージを表示するbrew search
- インストールしたパッケージを最新へ更新するbrew update
Node.js
Node.jsは、本来ブラウザ上で動くJavaScriptをサーバーサイドで動作させる実行環境です!
Node.jsがインストールされると、サーバーサイドで利用できるJavaScriptのパッケージを活用できます!
Yarn
Node.jsの環境上で動作するパッケージを管理する、JavScriptのパッケージ管理ツールです!
つまり、サーバーサイドで動作するJavaScriptのパッケージの管理するツールになります!
WebアプリケーションのフレームワークでJavaScriptを使用する際には、新たにNode.jsのパッケージを追加して利用することも多々あります!
Ruby on Railsでは、バージョン6系からJavaScriptのパッケージをデフォルトで利用するようになったため、プロジェクトの作成にYarnのインストールが必須となりました!
バージョン管理ツール
バージョン管理
変更したバージョンを記録はあるいは外部から保存して、過去のバージョンや最新のバージョンに切り替えることなどをバージョン管理と呼びます!
バージョン管理をすることで、パッケージとの依存関係の問題を解消したり、変更して問題が発生したプロジェクトを過去の安定したバージョンに切り替える、などの対応ができます!
rbenv
rbenvはRubyのバージョンを切り替えるためのバージョン管理ツールです!
複数のバージョンのRubyをダウンロードしておいて、使用するRubyのバージョンをディレクトリごとに指定することも可能になります!
rbenvを使えば、Rubyのバージョン変更に伴う依存関係の問題を回避できるため、Rubyを使用した開発をする際には必須となるツールです!
コマンドには以下のようなものがあります!
- rbenvのバージョンを表示するrbenv -v
- Rubyバージョンを指定してインストールするrbenv install [バージョン]
- Rubyバージョンを指定してアンインストールするrbenv uninstall [バージョン]
- インストールされているRubyバージョンの一覧を表示するrbenv versions
- 全てのディレクトリで使用するRubyバージョンを切り替えるrbenv global [バージョン]
- カレントディレクトリで使用するRubyバージョンを切り替えるrbenv local [バージョン]
- RubyやGemに関するコマンドをバージョン変更後もシユできるようにするrbenv rehash
コメント