グローバルbashのソース.bashrcファイル

グローバルbashのソース.bashrcファイル

そのため、GITでVMAFをコンパイルするスクリプトを作成しようとしていますが、PYTHONPATHの場所をインストールディレクトリに変更する必要があります。スクリプトが正しく実行され、VMAFがインストールされていますが、問題は.bashrcを変更したときにbashスクリプトが完了するまで機能し、グローバルに変更したいということです。 Bashプロセスが変更を分離していることを知っていますが、スクリプトの実行を維持するためにソースを実行する方法はありますか?これは私のコードです。

#!/bin/bash

mkdir $HOME/install
sudo apt-get install python-dev python-pip python-tk -y
sudo pip install --upgrade scikit-learn h5py numpy scipy matplotlib pandas

cd $HOME/install
git clone https://github.com/Netflix/vmaf.git
cd $HOME/install/vmaf
make
echo "export PYTHONPATH=$HOME/install/vmaf/python:\$PYTHONPATH" | sudo tee -a $HOME/.bashrc
echo "alias ll='ls -al --color'" | sudo tee -a $HOME/.bashrc

source $HOME/.bashrc
./unittest

ベストアンサー1

おそらく最もエレガントな解決策ではありませんが、/etc/bash.bashrcにグローバル変数を定義しますbash -c unittest

この種のタスクを自動化するように設計されたChefやPuppetなどの無料のオープンソースソフトウェアがあることを指摘する必要はありません。克服すべき学習曲線がありますが、どちらもよく文書化されたチュートリアルがあります。私はChefが好きで、ここでやりたいことを私がしなければならない場合はそれを使います。

見てhttps://learn.chef.io/tutorials/learn-the-basics/ubuntu/free/configure-a-resource/ローカルモードでChefを使用する方法を感じるために、この状況で行うことは次のとおりです。これはあなたが始めることができるように私が書いたChefスクリプトです。ただし、使用に伴う責任は本人にあります。まだテストしていません。 install_vmaf.rb などのファイルとして保存します。

include_recipe 'python'
include_recipe 'python::pip'

['python-dev','python-pip','python-tk'].each do |p|
  package p do
    action :install
  end
end

['scikit-learn','h5py','numpy','scipy','matplotlib','pandas'].each do |p|
  python_pip p do
    action :install
  end
end

git "/path/to/check/out/to" do
  repository "https://github.com/Netflix/vmaf.git"
  reference "master"
  action :sync
end

これは不完全であるため、ビルドプロセスを処理するにはリソースブロックを追加する必要があります。数年が経ってもまだ見ています。https://serverfault.com/questions/298013/installing-something-from-source-using-chef-should-i-be-doing-some-checksこれを行う方法に関するいくつかのガイドライン。

最後に、chef-clientrootとして実行する必要があるため、「git」リソースブロックの「user」属性を使用して、複製されたvmafリポジトリの所有権を正しく設定する必要があります。バラよりhttps://docs.chef.io/resource_git.htmlより多くの情報を知りたいです。

おすすめ記事