gpg-agent przestał działać

3

gnupg21Od kilku miesięcy z powodzeniem korzystam z pakietu MacPorts. W ciągu ostatnich kilku dni zaktualizowałem instalację MacPorts ( sudo port -d selfupdate), a następnie upewniłem się, że jestem na bieżąco ( sudo port upgrade outdated). Od tego czasu gpgv2nie działa już:

tartarus:~ sbooth$ gpg2 -K
gpg: can't connect to the agent: IPC connect call failed

tartarus:~ sbooth$ gpg-connect-agent
gpg-connect-agent: no running gpg-agent - starting '/opt/local/bin/gpg-agent'
gpg-connect-agent: waiting for the agent to come up ... (5s)
gpg-connect-agent: waiting for the agent to come up ... (4s)
gpg-connect-agent: waiting for the agent to come up ... (3s)
gpg-connect-agent: waiting for the agent to come up ... (2s)
gpg-connect-agent: waiting for the agent to come up ... (1s)
gpg-connect-agent: can't connect to the agent: IPC connect call failed
gpg-connect-agent: error sending standard options: No agent running

tartarus:~ sbooth$ gpg-agent --help
Assertion failed: (res == 0), function enter_npth, file npth.c, line 123.
Abort trap: 6

Całkowicie odinstalowałem instalację MacPorts ( rm -rf /opt/local) i ponownie zainstalowałem wszystko, bezskutecznie. Czy jest coś jeszcze, co mogę spróbować?

Korzystam z systemu macOS Sierra 10.12.1 (16B2657).

sbooth
źródło

Odpowiedzi:

4

Widzę dokładnie ten sam problem i, zgodnie z raportem o błędach MacPorts , pochodzi libgpg-errorz GnuPG w wersji 2.1.16.

Wydaje się więc, musimy też czekać na gnupg21port przejść od 2.1.15 do 2.1.16 lub lokalnie modyfikować i odbudować ten gnupg21port (i być może niektóre z jego zależnościami?), Aby uaktualnić przed oficjalnej aktualizacji. Nie jestem jednak pewien, czy chciałbym zrobić to drugie z czymś takim jak GnuPG, chociaż to tylko instynktowna reakcja.

Obejście

Zamiast uaktualnienia gnupg21zauważyłem, że obniżenie wersji libgpg-error powoduje, że problem zniknął (próbowałem tego z powodu komentarza na liście mailingowej GnuPG połączonego z raportem o błędzie, że przyczyną problemu jest aktualizacja z wersji libgpg-error1.24 do 1.25).

MacPorts zapewnia wskazówki na temat obniżenia poziomu portu i na jednym z moich komputerów Mac nadal mam dostęp do wersji 1.24 (zainstalowałem MacPorts bez uprawnień roota, stąd pominięcie sudotutaj):

$ port installed inactive | grep libgpg
  libgpg-error @1.24
$ port activate libgpg-error @1.24
--->  Computing dependencies for libgpg-error
--->  Deactivating libgpg-error @1.25_0
--->  Cleaning libgpg-error
--->  Activating libgpg-error @1.24_0
--->  Cleaning libgpg-error
$ port installed inactive | grep libgpg
  libgpg-error @1.25
$ gpg2 -K

No error, much joy :)

Nie jest to takie proste, jeśli starsza wersja została usunięta, ale również działa dla mnie (i biorąc pod uwagę błędy w łączeniu, rozważne może być odinstalowanie, a następnie ponowna instalacja gnupg21po obniżeniu wersji, libgpg-errorjeśli używasz powyższej metody):

$ svn checkout -r 150579
https://svn.macports.org/repository/macports/trunk/dports/devel/libgpg-error
Error validating server certificate for 'https://svn.macports.org:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: *.macports.org
 - Valid: from Mar  2 07:47:38 2016 GMT until May  2 01:19:52 2017 GMT
 - Issuer: GlobalSign Domain Validation CA - SHA256 - G2, GlobalSign nv-sa, BE
 - Fingerprint: 3E:AF:D7:EA:81:A4:92:33:B6:BC:DA:38:76:C3:15:54:9A:09:50:E0
(R)eject, accept (t)emporarily or accept (p)ermanently? t
A    libgpg-error/files
A    libgpg-error/files/patch-configure.diff
A    libgpg-error/Portfile
Checked out revision 150579.
$ cd libgpg-error/
$ port install
--->  Computing dependencies for libgpg-error
--->  Fetching distfiles for libgpg-error
--->  Verifying checksums for libgpg-error
--->  Extracting libgpg-error
--->  Applying patches to libgpg-error
--->  Configuring libgpg-error
--->  Building libgpg-error
--->  Staging libgpg-error into destroot
--->  Installing libgpg-error @1.24_0
--->  Deactivating libgpg-error @1.25_0
--->  Cleaning libgpg-error
--->  Activating libgpg-error @1.24_0
--->  Cleaning libgpg-error
--->  Updating database of binaries
--->  Scanning binaries for linking errors
--->  Found 16 broken file(s), matching files to ports
--->  Found 1 broken port(s), determining rebuild order
--->  Rebuilding in order
     gnupg21 @2.1.15 +pinentry_mac
Portfile changed since last build; discarding previous state.
--->  Computing dependencies for gnupg21
--->  Cleaning gnupg21
--->  Scanning binaries for linking errors
--->  Found 16 broken file(s), matching files to ports
--->  Found 1 broken port(s), determining rebuild order
--->  Rebuilding in order
     gnupg21 @2.1.15 +pinentry_mac
--->  Computing dependencies for gnupg21
--->  Fetching distfiles for gnupg21
--->  Verifying checksums for gnupg21
--->  Extracting gnupg21
--->  Configuring gnupg21
--->  Building gnupg21
--->  Staging gnupg21 into destroot
--->  Deactivating gnupg21 @2.1.15_0+pinentry_mac
--->  Cleaning gnupg21
--->  Uninstalling gnupg21 @2.1.15_0+pinentry_mac
--->  Cleaning gnupg21
--->  Computing dependencies for gnupg21
--->  Installing gnupg21 @2.1.15_0+pinentry_mac
--->  Activating gnupg21 @2.1.15_0+pinentry_mac

GPG 2.1 uses a new format for its key files. Therefore you cannot use it together with any earlier version of GPG. Neither can you
easily go back to an older version as the old version cannot read the new format.

--->  Cleaning gnupg21
--->  Updating database of binaries
--->  Scanning binaries for linking errors
--->  No broken files found.
programista
źródło
To pierwszy raz, kiedy mam problem z MacPorts, ale niestety jest to duży problem. Mam nadzieję, że w tej sprawie szybko się poruszą.
sbooth
@boot - przepraszam za wiele edycji mojej odpowiedzi (i zastanawiam się, czy edytowanie odpowiedzi, która już została zaakceptowana, jest złą formą (nowość tutaj ...)).
codebrewer
Obniżka załatwiła sprawę libgpg-error. Dzieki za sugestie!
sbooth
1
Edycja odpowiedzi nie jest zła, nawet jeśli zostanie zaakceptowana, jeśli zmiany ją wyjaśnią, aw razie potrzeby dostępna jest historia, którą można zobaczyć. Ja również napotkał ten błąd (na OS X 10.9) i na szczęście nie usunął zdezaktywowany poprzedni libgpg-błąd, więc po prostu oryginalny port -f deactivate libgpg-error @1.24_0następnie port -f activate libgpg-error @1.24_0uratował mnie od świata żalu. Jedyną rzeczą, o której musimy pamiętać, jest ponowna aktywacja nowej, gdy GPG 2.1.16 jest dostępny jako port. Dobra robota, BTW.
Ben,
Reaktywacja libgpg-error1.25 i aktualizacja do GnuPG 2.1.16 (teraz, gdy port jest aktualizowany do tej wersji) daje mi działający system.
codebrewer