Continúe con el error cuando apt-get encuentre una instalación que no puede localizar el problema del paquete

11

Cuando ejecuto lo siguiente:

sudo apt-get install vim abcde php5-cli

Falla con el siguiente mensaje, que es el comportamiento esperado:

E: No se puede localizar el paquete abcde`.

Quiero que se instale vime incluso si hay un error, abcdesimplemente continúe instalando el php5-clipaquete. Lo que significa que quiero apt-getcontinuar en la lista, incluso si no puede encontrar algunos de los paquetes.

He intentado:

sudo apt-get install --ignore-missing vim abcde php5-cli
tbenz9
fuente

Respuestas:

9

Respuesta corta: es posible que en realidad no quieras hacer esto.

¿Porqué es eso? Se ha debatido mucho sobre esta funcionalidad particular. Uno de ellos está en este informe de error (duplicado) y al que está vinculado.

La discusión en el informe de error también explica que "--no hacer caso omiso" solo se aplica si hay un problema al descargar un paquete que, de lo contrario, debería existir por la información que tiene su "get-get". Esto también se explica aquí y en la documentación.

¿Hay alguna solución?

Si después de leer las fuentes anteriores todavía está muy seguro de que desea hacer esto, entonces, por otro lado, hay opciones (subóptimas pero bastante seguras) como la especificada por el usuario "Aleksandr Levchuk" aquí :

for i in package1 package2 package3; do
  sudo apt-get install $i
done

O, si lo prefiere, una línea con una modificación mínima:

for i in package1 package2 package3; do sudo apt-get install $i; done

Si hay muchos paquetes, puede agregarlos -ypara que no solicite confirmación repetidamente:

for i in package1 package2 package3; do
  sudo apt-get install -y $i
done

O:

for i in package1 package2 package3; do sudo apt-get install -y $i; done

Espero que esto ayude.

usuario391035
fuente
Por cierto, si eres alguien como yo que usa Fish en lugar de Bash, primero tendrás que escribir "bash" para cambiar de caparazón. Luego copie y pegue el comando ya que por alguna razón no funcionará el shell Fish. Funciona bien con Bash.
Ev-
1

Una forma de evitar esto es invocar apt-get una vez para cada paquete :

echo package1 package2 package3 | xargs -n 1 sudo apt-get install -y

O como una función

function install_ignore_fail { echo "$*" | xargs -n 1 sudo apt-get install -y; }

install_ignore_fail package1 package2 package3
xjcl
fuente