R aus dem CRAN Ubuntu-Repository installieren: Kein Fehler beim öffentlichen Schlüssel


73

Ich bin auf R Version 2.13 und möchte auf eine neuere Version aktualisieren, um einige Pakete zu verwenden, die von R> = 2.14 abhängen.

Ich habe die Linie meiner sources.list - Datei als GEFUNDEN beschrieben hier . Ich navigiere dann zum Terminal und tippe:

sudo apt-get update

und erhalten Sie die folgende Fehlermeldung, wenn Sie versuchen, R auf dem CRAN-Spiegel zu aktualisieren, der mir am nächsten liegt:

Paketlisten lesen ... Fertig

W: GPG-Fehler: http://lib.stat.cmu.edu oneiric / Release: Die folgenden Signaturen konnten nicht überprüft werden, da der öffentliche Schlüssel nicht verfügbar ist: NO_PUBKEY 51716619E084DAB9

Irgendeine Idee, wie man diesen Fehler debuggt?


12
Suchen Sie weiter unten auf der von Ihnen verlinkten Seite - suchen Sie nach "SECURE APT" und folgen Sie den Anweisungen dort ...
Ben Bolker

Darüber hinaus beginnt die Zeile mit W, was bedeutet, dass es sich nur um eine Warnung handelt .
Dirk Eddelbuettel

Weiter zu @ ben-bolker - Ich habe dieses Problem selbst getroffen und konnte es nicht lösen, selbst wenn ich den Anweisungen von SECURE APT gefolgt bin. Ich stellte fest, dass ich mich bei der Arbeit hinter einer Firewall befand, die Port 11371 schloss, und den sicheren Schlüssel nicht herunterladen konnte. Dieser Zustand kann hier getestet werden . Die einzige Möglichkeit, dieses Upgrade durchzuführen, bestand darin, es zu Hause durchzuführen, wo ich Zugriff auf meinen Router habe.
Daedalus

Antworten:


45

Wie @Ben Bolker kommentiert hat (sorry, ich habe Ihren Kommentar entführt, aber die richtige Antwort wurde noch nicht veröffentlicht), gibt es in der Beschreibung des Debian-Paket-Repo einen Abschnitt, secure aptder besagt:

SICHERE APT

Die Debian-Backport-Archive auf CRAN sind mit dem Schlüssel "Johannes Ranke (CRAN Debian-Archiv)" mit der Schlüssel-ID 381BA480 signiert. Sie können dies mit abrufen

gpg --keyserver subkeys.pgp.net --recv-key 381BA480 oder alternativ unter Verwendung eines anderen Schlüsselservers,

gpg --keyserver pgp.mit.edu --recv-key 381BA480 Wenn dies nicht funktioniert, liegt dies möglicherweise an einem Firewall-blockierenden Port 11371. Alternativ können Sie unter http://keyserver.noreply.org nach 0x381BA480 suchen / oder http://pgp.mit.edu/ und kopieren Sie den Schlüsselblock in eine Nur-Text-Datei mit dem Namen jranke_cran.asc.

Wenn der Empfang des Schlüssels mit gpg funktioniert hat, müssen Sie ihn in eine Textdatei exportieren

gpg -a --export 381BA480> jranke_cran.asc In beiden Fällen müssen Sie den Schlüssel dem apt-System durch Ausführen bekannt machen

apt-key füge jranke_cran.asc als root hinzu.

Wenn Sie dies noch nicht getan haben, wird dies wahrscheinlich Ihr Problem beheben.


3
Es macht mir nichts aus, wenn Sie den Kommentar überhaupt entführen. Ich kommentiere, wenn ich zu faul bin, um eine vollständige Antwort zu
schreiben

7
Beachten Sie, dass sowohl diese als auch die Antwort von @ ManuelRamon von einem älteren Schlüssel abhängen. Ersetzen Sie alles, was Sie aus der Fehlermeldung erhalten apt-get update.
Ari B. Friedman

2
Ich wollte nur bestätigen, dass die Option 'Ausschneiden und Einfügen' aus dem Abschnitt SICHERE APT wie ein Zauber funktioniert: Suchen Sie unter keyserver.ubuntu.com:11371 (suchen Sie nach Michael Rutter) nach dem Schlüssel und kopieren Sie den Schlüssel in eine einfache Textdatei Sagen Sie key.txt. Dann füttern Sie den Schlüssel zu apt-key mit sudo apt-key add key.txt
Richard

1
Frage - Diese Informationen sind jetzt veraltet, da der aktuelle öffentliche Schlüssel Michael Rutter ist, wie in der Antwort unten angegeben. Ist es angebracht, diese Antwort zu bearbeiten, um die neuen Informationen wiederzugeben? Was ist der Standard bei StackExchange?
Rand-Fall

79

Die einfachste Lösung, die für mich funktioniert hat, war von Emre Sahin in diesem Thread :

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9 

Der Schlüssel in der markierten Antwort scheint für mich nicht zu funktionieren. Dieser tat es jedoch
OganM

4
+1 das hat bei mir funktioniert, aber ich musste den Schlüssel von E084DAB9 (gehört dem vorherigen Betreuer Michael Rutter) auf 381BA480 (aktueller Betreuer Johannes Ranke)
ändern

5
Update 22.03.2017: Aktueller öffentlicher Schlüssel ist Michael Rutter 51716619E084DAB9
Chad

Danke Chad. Immer noch aktuell ab 15.05.2018
Alex

1
Ab heute ist der Schlüssel für 3.6.1 Johannes Ranke FCAE2A0E115C3D8A
Stucash

37
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEYID

und ersetzen Sie KEYID durch die in der Fehlermeldung angegebene Nummer.


5
Genau, weil sich der Schlüssel WIEDER geändert hat, diesmal auf FCAE2A0E115C3D8A. Ihre Antwort würde immer funktionieren!
MS Berends

Dies sollte die akzeptierte Antwort sein.
Astra Uvarova - Saturns Stern


5

Ich bin auf dasselbe Problem gestoßen und die einzige Lösung, die ich möglicherweise aufgrund einer Firewall gefunden habe, war die Verwendung des hilfreichen Y PPA-Managers. Die beiden folgenden Schritte haben unter Ubuntu 15.04 funktioniert.

1) Installieren Sie zuerst den Y PPA Manager:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

2) Rufen Sie dann fehlende Schlüssel ab, indem Sie den Y PPA Manager ausführen:

y-ppa-manager

Klicken Sie auf "Erweitert"

Klicken Sie anschließend auf "Versuchen Sie, fehlende GPG-Schlüssel zu importieren".

Aktualisieren Sie abschließend erneut, um zu überprüfen, ob es funktioniert:

sudo apt-get update

5

Hier ist eine schrittweise Antwort, die möglicherweise einfacher zu befolgen ist.

  1. Holen Sie sich den Schlüssel (die letzten 8 Ziffern in der Warnmeldung):

    gpg --keyserver pgp.mit.edu --recv-key E084DAB9
    

    Die Ausgabe sollte folgendermaßen aussehen:

    gpg: requesting key E084DAB9 from hkp server pgp.mit.edu
    gpg: key E084DAB9: public key "Michael Rutter <marutter@gmail.com>" imported
    gpg: Total number processed: 1
    gpg:               imported: 1  (RSA: 1)
    
  2. Fügen Sie den Schlüssel hinzu (Superuser-Zugriff erforderlich):

    gpg -a --export E084DAB9 | sudo apt-key add -
    
  3. Aktualisieren Sie die Repositorys:

    sudo apt-get update
    

Es sollte jetzt keine Warnung über den fehlenden Schlüssel geben.


Der mit keyserver fällt manchmal aus. Ersetzen durch keyserver.ubuntu.comfunktioniert.
Akashrajkn

4

Ähnlich wie andere, die oben veröffentlicht wurden, scheint dieser Einzeiler unter Debian 6 gut zu funktionieren:

sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 381BA480

Executing: gpg --ignore-time-conflict --no-options
--no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver hkp://pgp.mit.edu:80 --recv-keys 381BA480 
gpg: requesting key 381BA480 from hkp server pgp.mit.edu 
gpg: key 381BA480: public key "Johannes Ranke (CRAN Debian archive) <jranke@uni-bremen.de>" imported 
gpg: no ultimately trusted keys found 
gpg: Total number processed: 1 
gpg:      imported: 1

1
Ich werde hinzufügen, dass manchmal der Standardport blockiert ist, also müssen Sie angeben, dass der Schlüssel über einen nicht blockierten Port wie 80 abgerufen werden soll
mpettis

1

Dies löste mein Problem

$ wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.