Я только что столкнулся с этой же проблемой.
т.е. удаленные проверки cvs не работают.
т.е. cvs -z3 -d:ext:<user>@<cvs-server-ip>:<CVSROOT> co -P -r <REVISION> <MODULE> приводит к cvs: bad command
Есть три проблемы,
- cvs был удален еще в 10.9
- cvs поверх ssh опирается на поддержку sshd PATH, которая жестко запрограммирована.
- /usr/bin не имеет root-прав, т.е. доступен только для чтения.
Вы решаете первую проблему, устанавливая cvs с помощью homebrew
Следующая проблема заключается в том, что когда вы пытаетесь запустить cvs:ext, вы обнаруживаете, что PATH неверен, это можно проверить следующим образом:
ssh <user>@cvs-sever-ip env | grep PATH
Вы увидите PATH=/usr/bin:/bin:/usr/sbin:/sbin, который является жестко закодированным неинтерактивным путем sshd. Для неинтерактивного ssh, используемого CVS для доступа к установке homebrew cvs (установленной в `/usr/local/bin/cvs), вам нужно добавить /usr/local/bin к пути sshd. AFAICT это невозможно сделать... нетривиально... поэтому лучшее решение - создать символическую ссылку в каталоге /usr/bin.
sudo ln -s /usr/local/bin/cvs /usr/bin/cvs
Что приводит к третьей проблеме. Это не работает, потому что /usr/bin не имеет root-прав... и, следовательно, доступен только для чтения.
Вы можете отключить режим без рута в режиме восстановления ... а затем сделать это, а затем снова включить его.
Но самым простым решением является перезагрузка в режиме восстановления, вход в терминал, затем cd /Volumes, затем перейдите в каталог /usr/bin на загрузочном томе, т.е. cd /Volumes/<bootvolume>/usr/bin
затем выполните команду:
ln -s /usr/local/bin/cvs cvs
Это создаст символическую ссылку из /usr/bin/cvs -> /usr/local/bin/cvs.
Перезагрузитесь обратно в свою ОС, и это должно исправить это.
Вы можете убедиться в этом с помощью
ssh <user>@<cvs-server-ip> which cvs
который должен вернуться:
/usr/bin/cvs
Теперь ваши удаленные проверки cvs должны работать...
person
stux
schedule
15.02.2017