Servname не поддерживается для AI socktype
Я запускаю виртуальную машину Centos с помощью Vagrant. Машина, кажется, работает правильно, но когда я пытаюсь синхронизировать Perforce, я вижу следующую ошибку:
[vagrant@vagrant-c5-x86_64 ~]$ /perforce/p4 sync -f ...
Perforce client error:
Connect to server failed; check $P4PORT.
failed.TCP connect to perforce.xxx.com:1666
Servname not supported for ai_socktype
Я прочитал это http://www.ducea.com/2006/09/11/error-servname-not-supported-for-ai_socktype/ и попытался установить порты в /etc/services
, но это не сработало. Я даже не уверен, что проблема связана с Perforce или OS.
какие-то намеки?
2 ответов
У меня была эта проблема с приложением Tornado / Python. Видимо, это может быть вызвано по порту, интерпретируемому как строка вместо целого числа. Поэтому в моем случае мне нужно было изменить сценарий запуска, чтобы заставить его интерпретироваться как целое число.
application = tornado.web.Application(...)
application.listen(int(port))
вы можете ввести своего клиента ? прежде чем пытаться синхронизировать файлы, попробуйте создать клиент perforce:
p4 client
может быть, это не host:port
это проблема, но и другие флаги в строке соединения, которые прерывают.
я лично получил ту же самую ошибку, но это была проблема волей-неволей.
причина в том, что волей-неволей имеет свой собственный приоритет, когда он ищет свой P4USER
/P4PORT
/... конфигурация.
- ENV переменные ( выполнить
export
) - если
P4CONFIG
переменная была указана где-то, где она может искать в файле ( например,.perforce
в текущем / верхнем каталоге)
проблема была, хотя сначала он искал переменную ENV -P4CONFIG
файл может переопределить его.
мой $P4PORT
переменная ENV имела строку соединения X, но .perforce
файл имел строку подключения Y.
удаление P4PORT
от моего местного .perforce
file-решил это вопрос.
в Примере:
$~] echo $P4PORT;
rsh:ssh -2 -q -a -x -l p4ssh perforce.mydomain.com
$~] cat .perforce
# P4PORT="rsh:ssh -q -a -x -l perforce.mydomain.com /bin/true"
P4USER="my_user"
также помните, что Perforce будет искать $P4CONFIG
файл (если он настроен ) во всей иерархии каталогов вверх, поэтому, даже если у вас нет файла в текущем каталоге - он может быть найден в верхнем каталоге, и там-у вас может быть $P4PORT
конфигурация, которую вы не ожидали..