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/... конфигурация.

  1. ENV переменные ( выполнить export )
  2. если 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 конфигурация, которую вы не ожидали..