MacPort самообновление с помощью sudo не удается за прокси

0

Я только что установил macport, но самообновление не удается. Я подозреваю, что это потому, что я нахожусь в корпоративной сети за прокси, но не могу понять, как я могу это исправить.

Для фона я установил прокси:

$> typeset -p http_proxy
declare -x http_proxy="http://proxy:8080"

Но MacPort терпит неудачу в getaddrinfo:

$> sudo port -d selfupdate
DEBUG: Copying /Users/i063510/Library/Preferences/com.apple.dt.Xcode.plist to /opt/local/var/macports/home/Library/Preferences
DEBUG: MacPorts sources location: /opt/local/var/macports/sources/rsync.macports.org/release/tarballs
--->  Updating MacPorts base sources using rsync
rsync: getaddrinfo: rsync.macports.org 873: nodename nor servname provided, or not known
rsync error: error in socket IO (code 10) at /SourceCache/rsync/rsync-42/rsync/clientserver.c(105) [receiver=2.6.9]
Command failed: /usr/bin/rsync -rtzv --delete-after rsync://rsync.macports.org/release/tarballs/base.tar /opt/local/var/macports/sources/rsync.macports.org/release/tarballs
Exit code: 10
DEBUG: Error synchronizing MacPorts sources: command execution failed
    while executing
"macports::selfupdate [array get global_options] base_updated"
Error: /opt/local/bin/port: port selfupdate failed: Error synchronizing MacPorts sources: command execution failed

Интересно, что curlполучается, но pingне получается:

$> curl http://google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>
$> ping google.com
ping: cannot resolve google.com: Unknown host
Жалкая переменная
источник

Ответы:

1

Вы устанавливаете прокси для http-соединений. curl и ваш веб-браузер использует http, а rsync - нет. Таким образом, объясняя ошибки.

В идеале вам нужно попросить своего прокси-администратора изменить прокси-сервер, чтобы разрешить rsync,

Если нет, то вы можете получить синхронизацию для работы через http-прокси, как описано в этом блоге.

Есть три шага. Необходимые условия, чтобы это работало: у вас есть адрес прокси, доступ администратора к вашему mac и что прокси поддерживает порт rsync (873 / tcp).

Вы можете проверить подключение, перейдя по адресу http://rsync.macports.org:873 , вы должны получить следующую ошибку:

@RSYNCD: 30.0
@ERROR: protocol startup error

Если это работает нормально, вам нужно настроить среду sudo для osx, чтобы пропустить настройки среды прокси.

  1. Отредактируйте файл sudoers с помощью sudo visudo. Вам нужно добавить эти строки:

    По умолчанию env_keep + = "http_proxy HTTP_PROXY HTTPS_PROXY FTP_PROXY RSYNC_PROXY" По умолчанию env_keep + = "ALL_PROXY NO_PROXY"

  2. Установите свой http прокси

    экспорт http_proxy = http://proxy.example.com:8080

    где 8080 - номер порта прокси

  3. Заставьте rsync использовать прокси. По умолчанию порт использует rsync для управления своими обновлениями. RSync может использовать настройку среды прокси (man rsync для mre)

    export RSYNC_PROXY = proxy.example.com: 8080

    Обратите внимание на заглавную букву прокси-сервера rsync и тот факт, что он не требует http: //

Это должно сделать это. Затем вы можете запустить selfupdate, чтобы получить порт до последней версии.

отметка
источник
Я подозреваю, что за большим корпоративным брандмауэром и прокси-сервером я не смогу заставить ИТ-персонал вносить какие-либо изменения. Но я надеюсь, что это сработает. Благодарю.
Ужасная переменная