私は多くの依存関係をインストールし、スクリプトを実行するための最初のbashスクリプトを作成しようとしています。
私は開発者です。つまり、ホームブレンド、ルビー、ノードなどのツールがたくさんインストールされており、ユーザーがOSXを新しくインストールしたという意味です。私はこのスクリプトがOSXを新しくインストールするすべての新規ユーザーに機能したいと思います。
PATH
ユーザーが新しくインストールすることをシミュレートするために、デバッグ目的でスクリプトの先頭に単純なフレームをエクスポートしようとします。
node
私が直面している問題は、実際にそれを参照する方法やnpm
実行できるように具体的に説明する方法がわからないということですnpm install
。
echo
鉱山が生産しているのがわかります。 node / npmを正しくインストールして実行する方法についてのアイデアはありますか?
#!/bin/bash
# Install necessary deps and runs script to create user for the DEV environment.
# Mainly used for non engineers to be able to create their own emails.
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin::/usr/local
echo $PATH
# Install homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# Install node 8
/usr/local/bin/brew install node@8
# Install npm - https://stackoverflow.com/a/36631430/222403
/usr/local/bin/brew postinstall node@8
echo /usr/local/bin/brew --prefix node@8 = $(/usr/local/bin/brew --prefix node@8)
echo which node = $(which node) --> PRINTS which node =
echo which node@8 = $(which node@8) --> PRINTS which node@8 =
echo which npm = $(which npm) --> prints which npm =
....
ベストアンサー1
Brewは通常ファイル/usr/local/Cellar
を/usr/local/bin
。
この$PATH
新しいボックスにはないかもしれません/usr/local/bin
。したがって、2つのオプションがあります。
醸造について読むそのパッケージがインストールされる場所を予測し、終了ステータスを確認し、絶対パスを含めるようにスクリプトを
brew install ...
変更して、Brewによってインストールされた新しいバイナリ/スクリプトのパスをハードコードします。brew install foo
機能する場合は、foo
バイナリを呼び出しに使用できる必要があります/usr/local/bin/foo
。機能している場合は、次の手がかりを得ることができます
brew install
。/usr/local/bin/brew install node@8 status=$(echo $?) if [[ "$status" -ne 0 ]]; then echo "Brew install node failed!" exit 1 fi ...
このスクリプトを完全に自動化するには、命令呼び出し時にエラーがないか確認して処理する。。
スクリプトがコマンドの解析にシステムパスを使用する前に、システムパスを更新してください。これにより、トリックを実行できます。
#!/bin/bash export PATH="/usr/local/bin:$PATH" ...
これはユーザーのbash環境に依存せず、上記のコマンドを変更する必要が
which
あります。しかし、考えてみてください。新しいボックスが/usr/local/bin
必要ですか$PATH
?