Похоже, вы используете CentOS/Redhat 7. Ошибки возникают из-за включения репозитория Epel для CentOS/Redhat версии 6.
РЕДАКТИРОВАТЬ:
Согласно этой вики , загрузите и установите epel -выпуск -последний -7.noarch.rpm .
sudo rpm -ivh epel-release-latest-7.noarch.rpm
Вы можете проверить эти пакеты и их ключи на странице ключей проекта Fedora:https://fedoraproject.org/keys.
Обязательно удалите (или, как минимум, отключите )репозиторий epel el6
.
Как отмечали другие, ваш код не обязательно работает так, как вы ожидаете, когда вы открываете новый терминал, так как текущий рабочий каталог может не быть тем, который содержит ваши проекты, и этот фрагмент кода только запускается при запуске новой оболочки.
Вместо этого вы, вероятно, знаете, где находятся ваши проекты, возможно, относительно вашего каталога $HOME
. Если это так, вы можете использовать это вместо:
for binpath in vendor/bin node_modules/.bin; do
if [ -d "$HOME/projects/$binpath" ]; then
PATH=$HOME/projects/$binpath:$PATH
fi
done
export PATH
Здесь я предполагаю, что $HOME/projects
— это место, где находятся ваши проекты.
export
в конце, вероятно, не нужен, так как PATH
, скорее всего, уже экспортирован.
В частности, с zsh
можно сделать:
path[1,0]=(~/projects/{vendor/,node_modules/.}bin(/N))
Где:
path[1,0]=(list)
вставляет list
в начало массива($path
в zsh
— это массив, привязанный к $PATH
как вzsh
).
и (N/)
— это квалификатор glob, где N
включает nullglob
для glob, а /
выбирает файлы типа каталога, поэтому эти два файла добавляются перед $PATH
, если они существуют и относятся к типу каталог .
я не думаю, что это возможно сделать так, как вы хотите, не с.rc (.rc выполняется только один раз, он не будет выполняться позже, если вы специально не сделаете это ). А как насчет двух псевдонимов?
backupPATH=$PATH
function mkpath {
[ -d "$(pwd)/vendor/bin" ] && export PATH="$(pwd)/vendor/bin":"$PATH"
[ -d "$(pwd)/node_modules/.bin" ] && export PATH="$(pwd)/node_modules/.bin":"$PATH"
}
alias resetpath="PATH=$backupPATH"
При этом вы можете в любое время добавить текущий каталог в $PATH.