2012-04-21 18 views
49

Permítanme comenzar diciendo que soy completamente nuevo en Linux (Ubuntu) y trabajando con R. Actualmente, estoy en la versión R 2.13 y me gustaría actualizar a una versión más nueva para usar algunos paquetes que dependen de R> = 2.14.Instalando R desde el repositorio de CRAN Ubuntu: No Error de clave pública

Tengo la línea de mi archivo sources.list como se describe descrito here. a continuación, Navegación a la terminal y escribe:

sudo apt-get update 

y obtener el siguiente error al intentar actualizar R en el espejo CRAN más cercanos a mí:

Reading package lists... Done 
W: GPG error: http://lib.stat.cmu.edu oneiric/ Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 51716619E084DAB9 

Puesto que soy nuevo en R bajo Ubuntu, No estoy seguro de cómo solucionar este error.

Cualquier ayuda será muy apreciada.

+8

busque más abajo en la página que ha vinculado, busque "SECURE APT" y siga las instrucciones allí ... –

+0

Además, la línea comienza con * W *, lo que significa que es un _warning_ solamente. –

+0

Además de @ ben-bolker, me encontré con este problema y no pude resolverlo, incluso cuando seguí las instrucciones SECURE APT. Descubrí que estaba detrás de un firewall en el trabajo que cerró el puerto 11371 y no pude descargar la clave de seguridad. Esta condición se puede probar [aquí] (http://www.yougetsignal.com/tools/open-ports/).La única forma en que pude realizar esta actualización fue haciéndolo en casa, donde tengo acceso a mi enrutador. – gauden

Respuesta

41

Como @Ben Bolker comentado (lo siento secuestrado su comentados, pero la respuesta correcta aún no fue publicada), en the description de la cesión temporal de paquetes de Debian hay una sección secure apt que dice:

SEGURO APT

Los archivos de backports de Debian en CRAN están firmados con la clave "Johannes Ranke (archivo Debian de CRAN)" con la clave ID 381BA480. Se puede recuperar con este

gpg --keyserver subkeys.pgp.net --recv-clave 381BA480 o alternativamente, utilizando otro servidor de claves,

gpg --keyserver pgp.mit.edu --recv- clave 381BA480 Si esto no trabajo, que podría ser debido a bloquear el puerto 11371. Alternativamente, un cortafuegos, puede buscar en 0x381BA480 http://keyserver.noreply.org/ o http://pgp.mit.edu/ y copiar el bloque de claves en un archivo de texto sin formato , llamado, por ejemplo, , jranke_cran.asc.

Si la recepción de la clave GPG con el trabajo lo hizo, es necesario exportarlo a un archivo de texto

gpg -a --export 381BA480> jranke_cran.asc En ambos casos, es necesario hacer la tecla conocido a el sistema apt ejecutando

apt-key agrega jranke_cran.asc como root.

Si aún no lo ha hecho, esto probablemente solucionará su problema.

+2

No me importa que secueses el comentario en absoluto. Hago un comentario cuando soy demasiado flojo para publicar una respuesta completa ... –

+6

Tenga en cuenta que tanto esta como la respuesta de @ ManuelRamon se basan en una clave anterior. Sustituye con lo que obtengas del mensaje de error de 'apt-get update'. –

+2

Solo quería confirmar que la opción 'cortar y pegar' de la sección SECURE APT funciona como un amuleto: Busque la clave en http://keyserver.ubuntu.com:11371/ (busque Michael Rutter) y copie la clave de un archivo de texto sin formato, digamos key.txt. A continuación, introduzca la clave en apt-key con sudo apt-key add key.txt – Richard

60

La solución más simple que trabajó para mí era de Emre Sahin en this thread:

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

la tecla en la respuesta marcada no parece funcionar para mí. este aunque – OganM

+2

+1 esto funcionó para mí, pero tenga en cuenta que necesitaba cambiar la clave de E084DAB9 (perteneciente al anterior mantenedor Michael Rutter) a 381BA480 (actual mantenedor Johannes Ranke) – arielf

+0

esto debería ser simplemente la respuesta marcada. – doctorate

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

y reemplazar KEYID con el número que aparece en el mensaje de error.

+0

. Votación máxima porque esta es la solución resumida. –

3

Aquí hay una respuesta paso a paso que podría ser más fácil de seguir.

  1. Fetch la tecla (los últimos 8 dígitos en el mensaje de advertencia):

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

La salida debe tener este aspecto:

gpg: requesting key E084DAB9 from hkp server pgp.mit.edu 
    gpg: key E084DAB9: public key "Michael Rutter <[email protected]>" imported 
    gpg: Total number processed: 1 
    gpg:    imported: 1 (RSA: 1) 
  1. Crear un archivo de texto para la k EY:

    gpg -a --export E084DAB9> marutter.asc

  2. Añadir la clave (acceso de superusuario requerido):

    sudo apt-key add marutter.asc

  3. actualización de la repositorios:

    sudo apt-get update

No debería haber ninguna advertencia sobre la clave que falta ahora.

5

Me encontré con el mismo problema y la única solución que encontré, quizás debido a un firewall, fue utilizar el útil Y PPA Manager. Los dos pasos debajo del esquema han funcionado en Ubuntu 15.04.

1) En primer lugar instalar la Y PPA Manager:

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

2) A continuación, coger claves mediante la ejecución de la PPA Gerente Y faltante:

y-ppa-manager 

Haga clic en "Opciones avanzadas"

A continuación, haga clic en "Intentar importar claves GPG que faltan"

Por último, actualizar de nuevo para comprobar si funciona:

sudo apt-get update 
11

Gracias a Philipp Burckhardt me lo arreglen ... echar un vistazo here: o simplemente puede hacer esto:

gpg --keyserver pgpkeys.mit.edu --recv-key 51716619E084DAB9 
gpg -a --export 51716619E084DAB9 | sudo apt-key add - 
3

Al igual que otros publicados anteriormente, este one-liner parece funcionar bien en Debian 6:

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) <[email protected]>" imported 
gpg: no ultimately trusted keys found 
gpg: Total number processed: 1 
gpg:  imported: 1 
+1

Agregaré que a veces el puerto predeterminado está bloqueado, por lo que debe especificar obtener la clave sobre un puerto desbloqueado, como 80. Ver: https://cloud.r-project.org/bin/linux/ubuntu/ – mpettis

Cuestiones relacionadas