Provavelmente não é a solução mais elegante, mas você pode definir as variáveis globais em /etc/bash.bashrc e executar unittest com bash -c unittest
. Eu * acho * que vai funcionar, mas YMMV.
Eu não posso deixar de salientar que há software livre de código aberto, como Chef e Puppet, projetado para automatizar coisas como essa. Enquanto há uma curva de aprendizado a ser superada, ambas são bem documentadas com tutoriais. Eu sou parcial ao Chef e usaria isso se tivesse que fazer o que você está tentando fazer aqui.
Dê uma olhada no link para obter uma sinta como usar o Chef no modo local, que é o que eu faria nessa situação. Aqui está um roteiro do Chef que escrevi para você começar, mas use-o por sua conta e risco. Eu não testei isso. Salve-o em algo como 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
Isso está incompleto, então você precisará adicionar um bloco de recursos para lidar com o processo de criação. Há vários anos, mas dê uma olhada em link para alguma direção sobre como fazer isso.
Por fim, tenha em mente que chef-client
deve ser executado como root, portanto, você desejará usar a propriedade "user" dentro do bloco de recursos "git" para definir a propriedade do repositório vmaf clonado corretamente. Consulte o link para obter mais informações.