Что действительно “отзывается эхом, ipv4>> ~/.curlrc” делают?

Я сталкивался с некоторой проблемой сегодня при попытке установить компоновщик с ниже команды:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Это давало мне эту ошибку:

curl: (7) Failed to connect to getcomposer.org port 443: Network is unreachable

Я погуглил и нашел эту команду:

echo ipv4 >> ~/.curlrc

Я выполнил это, и это решило проблему и компоновщик, установленный очень хорошо.

Но я не знаю то, что делает вышеупомянутая команда, кто-либо мог объяснить это?

8
задан 25 May 2017 в 22:42

2 ответа

То, что, делает, добавляют "ipv4" к файлу "curlrc". Пример, запускающийся с пустого файла:

$ touch 1
$ more 1
$ echo ipv4 >> 1
$ more 1
ipv4

В основном это вынуждает завихрение использовать ipv4.

<час>

руководство говорит следующее об этом:

завихрение IPv6

соединится с сервером с IPv6, когда поиск хоста возвратит адрес IPv6, и отступите к IPv4, если связь прерывается. --ipv4 и --ipv6 опции могут указать, какой адрес использовать, когда оба доступны. Адреса IPv6 могут также быть указаны непосредственно в URL с помощью синтаксиса

9
ответ дан 23 November 2019 в 05:30

Типичная конвенция в UNIX состоит в том, что программы (обычно) читают свою конфигурацию запуска из различных предопределенных файлов. Это - просто традиция, ничто определенное POSIX или любым другим стандартом. Типичная программа UNIX, например. foobar читал бы, в следующем порядке приоритета:

~/.foobarrc  ## User specific configuration parameters
/etc/foobarrc  ## Global parameters, depending on taste
               ## `/etc/foobar/*(.conf)' might be chosen too 

Могла бы быть нейтрализация в /usr/share/ но это не очень распространено.

Так, curl здесь в соответствии с конвенцией и чтением это - первоначальная конфигурация от ~/.curlrc. И путем выполнения echo ipv4 >>~/.curlrc, Вы добавили строку ipv4 в файл ~/.curlrc.

Строка ipv4 имеет особое значение к curl -- curl будет использовать IPv4 для разрешения хоста затем. Это походит на использование -4/ipv4 как curlаргумент от командной строки, но сохраняющий к ~/.curlrc делает это постоянным.

Поскольку Вы установили ipv4 там и теперь все работает на Вас, по-видимому, Вам настроили IPv6, и curl ранее использовали IPv6 для (успешного) разрешения хоста, таким образом, никакая нейтрализация к IPv4. Связь с сайтом прерывалась, потому что не всем сайтам настроили их веб-серверы для слушания на адресах IPv6, таким образом, socket() вызов перестал бы работать, как мы видим в этом случае.

5
ответ дан 23 November 2019 в 05:30

Другие вопросы по тегам:

Похожие вопросы: