macup selfupdate przy użyciu sudo kończy się niepowodzeniem za proxy

0

Właśnie zainstalowałem Macport, ale automatyczna aktualizacja kończy się niepowodzeniem. Podejrzewam, że dzieje się tak, ponieważ jestem w sieci korporacyjnej za serwerem proxy, ale nie mogę znaleźć sposobu, jak to naprawić.

Dla tła ustawiłem proxy:

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

Ale Macports zawiedzie 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

Co ciekawe, curludaje się, ale pingnie:

$> 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
Nędzna zmienna
źródło

Odpowiedzi:

1

Ustawiasz serwer proxy dla połączeń HTTP. curl i twoja przeglądarka internetowa używa http, ale rsync nie. Wyjaśniając w ten sposób błędy.

Najlepiej jest poprosić administratora proxy o zmianę serwera proxy, aby umożliwić rsync,

Jeśli nie, możesz być w stanie zsynchronizować się z serwerem proxy HTTP zgodnie z tym blogiem

Istnieją trzy kroki. Wymagania wstępne, aby to zadziałało, to posiadanie adresu proxy, dostępu administratora do komputera Mac oraz proxy obsługującego port rsync (873 / tcp).

Możesz przetestować łączność, przechodząc do strony http://rsync.macports.org:873 , powinieneś otrzymać następujący błąd:

@RSYNCD: 30.0
@ERROR: protocol startup error

Jeśli to działa dobrze, musisz skonfigurować środowisko sudo dla osx, aby przepuścić ustawienia środowiska proxy.

  1. Edytuj plik sudoers za pomocą sudo visudo. Musisz dołączyć te linie:

    Domyślne env_keep + = "http_proxy HTTP_PROXY HTTPS_PROXY FTP_PROXY RSYNC_PROXY" Domyślne env_keep + = "ALL_PROXY NO_PROXY"

  2. Ustaw swój serwer proxy HTTP

    eksport http_proxy = http://proxy.example.com:8080

    gdzie 8080 to numer portu serwera proxy

  3. Niech rsync używa proxy. Domyślnie port używa rsync do zarządzania swoimi aktualizacjami. RSync może używać ustawienia środowiska proxy (man rsync dla mre)

    eksport RSYNC_PROXY = proxy.example.com: 8080

    Zwróć uwagę na wielką literę serwera proxy rsync i fakt, że nie potrzebuje ona http: //

Że należy to zrobić. Następnie możesz uruchomić selfupdate, aby uzyskać port do najnowszej wersji.

znak
źródło
Podejrzewam, że za dużą korporacyjną zaporą ogniową i serwerem proxy nie będę w stanie zmusić informatyków do wprowadzenia jakichkolwiek zmian. Ale mam nadzieję, że to zadziała. Dzięki.
Nędzna zmienna