Я думаю, у меня проблема с $ PATH. Я запускаю сценарий оболочки, и он жалуется, что не распознает команду, хотя когда я запускаю ее вручную, она распознает.
Сценарий оболочки:
#!/bin/bash
# DEPLOYMENT
USR="test"
APP="/srv/www/test"
ENV="/srv/www/test/venv"
LOG="/var/log"
# LOGGING
exec > >(tee -a $LOG/log.log)
exec 2> >(tee -a $LOG/error.log)
# SOFTWARE
apt-get update
apt-get install -y python-dev build-essential nginx python-pip
# PACKAGES
pip install virtualenv uwsgi supervisor
# ENVIRONMENT
mkdir -p $APP
virtualenv $VENV
source $VENV/bin/activate
# FINALIZATION
service supervisor restart
service nginx restart
Когда я запускаю это, я получаю следующую ошибку:
Журнал ошибок:
/root/StackScript: line 22: virtualenv: command not found
/root/StackScript: line 23: /bin/activate: No such file or directory
supervisor: unrecognized service
Когда я запускаю команду «pip» вручную, она говорит, что она установлена и распознана. Что происходит и как это диагностировать?
Проблема, похоже, в том, что вы использовали VENV без его определения.
/ root / StackScript: строка 23: / bin / activate: нет такого файла или каталога
то $VENV
расширяется до нуля, поэтому $VENV/bin/activate
становится /bin/activate
и не найдено.
Возможно вы имели в виду
VENV="/srv/www/test/venv"
в строке 6.