No se puede encontrar ack en los repositorios de Ubuntu 17.10

14

Estoy tratando de instalar a acktravés de, aptpero parece que ya no está disponible en los repositorios. Ambos:

sudo apt install ack
sudo apt install ack-grep

dar el siguiente error:

E: Package 'ack-grep' has no installation candidate

¿Ya no está disponible en los repositorios 17.10?

Axel Beckert
fuente
Primero, inténtalo sudo apt update.
Arupgsh
1
@muru Gracias, pero su enlace muestra que no está disponible ya artfulque no está en la lista, ¿correcto? packages.ubuntu.com/search?suite=artful&keywords=ack
3
Hmm, sí, launchpad.net/ubuntu/+source/ack/2.14-5/+publishinghistory indica que se eliminó debido a que se rompió
muru
3
Hola, creador de ack aquí. Soy consciente de la situación, pero no sé si puedo hacer algo al respecto personalmente. Aquí hay un boleto en el rastreador de errores ack con más información: github.com/beyondgrep/ack2/issues/652
Andy Lester

Respuestas:

12

Ack tiene una falla de prueba en Ubuntu 17.10 Artful y ha sido excluido de Ubuntu hasta que pasa. Perl se actualiza en Artful y la nueva versión de ack no es compatible con el nuevo Perl. La nueva versión no pasa todas sus pruebas. La falla de la prueba es causada por problemas con el marco de prueba que se ejecuta en Ubuntu (incluso cuando funciona bien en Debian) . Pronto se lanzará una nueva versión que pase .

Mientras tanto, una solución alternativa es instalarlo a través de CPAN como se sugiere en la página de inicio de ack . Si aún no tiene instalado CPAN, primero debe instalarlo:

sudo apt install cpanminus

Luego puede usarlo para instalar ack:

sudo cpanm install App::Ack

Lo construirá y probará, por lo que tomará aproximadamente 2 minutos, pero una vez hecho esto, estará en su camino en /usr/local/bin/ack.

Me gusta esta opción de instalación porque usa repositorios apt y cpan estándar. Utiliza bibliotecas Perl que se actualizarán mediante herramientas automatizadas. Se puede implementar fácilmente en herramientas automatizadas como Ansible.

Stephen Ostermiller
fuente
2
Es de suponer que si va a instalar cpanminus que realmente desea a continuación, instalar usarlo: sudo cpanm App::Ack.
Joel Berger
3
En realidad, en su estado actual es no un problema con Perl o Ack (pruebas pasan con las mismas versiones en el sistema de compilación Debian casi idéntica). Actualmente se supone que es un error en el sistema de compilación de Ubuntu.
mniess
6

Lamentablemente ackno está en los repositorios 17.10. Una solución alternativa es instalarlo manualmente según las instrucciones en su sitio web .

Esto es lo que hice:

$ sudo su
# curl https://beyondgrep.com/ack-2.18-single-file > /usr/local/bin/ack && chmod 0755 /usr/local/bin/ack
Pēteris Caune
fuente
2
Aunque parece un poco cuestionable instalar software desde sitios web aleatorios, beyondgrep.com es el sitio web oficial de ack.
Stephen Ostermiller
1
La versión de archivo único de ack usa sus propias copias de las bibliotecas requeridas que no se actualizarán automáticamente si se encuentra una falla de seguridad en ellas. Está utilizando las versiones de la biblioteca a partir de cuando se creó ack, que pueden no ser las versiones más actualizadas incluso en el momento de la instalación. Si utiliza esta solución, debe tener en cuenta que existen problemas de seguridad adicionales con las instalaciones de un solo archivo.
Stephen Ostermiller
Un trazador de líneas en lugar de usar sudo su: ack="/usr/local/bin/ack" && curl -s https://beyondgrep.com/ack-2.18-single-file | sudo tee "$ack" > /dev/null && sudo chmod 0755 "$ack"
Stephen Ostermiller
Por favor no En su lugar, use el paquete ack .deb de otra versión de Ubuntu (o incluso Debian). Entonces al menos obtienes actualizaciones de seguridad para todas las bibliotecas usadas.
Axel Beckert
Este fue el único método que funcionó para mí.
Theodore R. Smith
4

Los paquetes que no pasan las pruebas automáticas de paquetes instalados de Ubuntu no se incluyen en una versión, al menos aquellos que no provienen del archivo del universo (que se importa regularmente y se automatiza desde Debian Unstable).

Debido a un cambio durante el ciclo de lanzamiento ingenioso de Ubuntu 17.10, algo rompió el autopkgtest de ack en Ubuntu y, por lo tanto, detuvo su inclusión en los lanzamientos de Ubuntu. Ni siquiera puede encontrarlo en la instantánea de desarrollo actual bionic, pero puede instalarlo si agrega una línea bionic-proposeda su sources.list.

Todavía no está claro, qué fue exactamente ese cambio, respectivamente, la razón (tal vez un error en la infraestructura de prueba automática de Ubuntu) y cuál es el desencadenante. (Tal vez el cambio a Perl 5.26 exhibió un problema en la infraestructura de prueba automática de Ubuntu).

Sin embargo, lo que está claro es que este problema es específico de ubuntu ya que la prueba automática de ack en Debian pasa sin ningún problema. Y ejecutar autopkgtest localmente en una instantánea de desarrollo de Ubuntu 18.04 Bionic tampoco exhibe estas fallas de prueba . (Y parece que se basa en Ubuntu. Y el mismo conjunto de pruebas también se ejecuta en tiempo de compilación, y si no se aprueba, el paquete no se compilaría, lo que se considera un problema mucho más grave).

Otro indicio de que el problema está oculto en algún lugar de la infraestructura de prueba automática de Ubuntu es el hecho de que la mayoría de las fallas de prueba consideran su entrada repentinamente como STDIN en lugar de los archivos esperados .

Cualquier sugerencia sobre las razones subyacentes de estas extrañas fallas de prueba específicas de ubuntu-autopkgtest es muy apreciada en el informe de error de launchpad correspondiente o en el informe de error ascendente correspondiente .

Axel Beckert
fuente
2

Como @muru indicó en los comentarios anteriores, el paquete se ha eliminado ya que está roto en 17.10, así que sí, no acken los repositorios 17.10 por ahora.

Supongo que debería vigilar https://packages.ubuntu.com/search?suite=artful&keywords=ack para saber cuándo volverá a estar disponible.


fuente
1
Probablemente no lo sea. Es extremadamente raro que un paquete que aún no está en los repositorios esté disponible a través de backports. Podrías echarle un vistazo a launchpad.net/ubuntu/bionic/+source/ack para ver si logra el corte para 18.04 (dado que es un lts, ​​tal vez se podría poner más esfuerzo para que funcione)
muru
Por lo que puedo decir, el "roto" que causó este problema fue un error de ortografía que disparó el paquete de Debian.
Andy Lester
1
@AndyLester: No, ese error de ortografía no tuvo nada que ver con eso. Incluso fue marcado como falso positivo a través de una anulación de Lintian por el equipo Debian Perl.
Axel Beckert
"roto" (Cc @muru) significa en este caso que falló la prueba automática del paquete instalado (abreviado: prueba automática). La página relevante a vigilar es autopkgtest.ubuntu.com/packages/ack y sus subpáginas. Y esto es claramente un problema específico de Ubuntu cuando ack pasa la prueba automática de Debian .
Axel Beckert
@AxelBeckert lo sé. Hemos discutido esto en la página de boletos. Escribí ese comentario de ortografía hace seis semanas.
Andy Lester
1

Pude instalar el paquete Ubuntu 18.04 en mi caja Ubuntu 17.10:

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=17.10
DISTRIB_CODENAME=artful
DISTRIB_DESCRIPTION="Ubuntu 17.10"
$ sudo apt install libfile-next-perl
...snip...
$ wget https://launchpad.net/ubuntu/+archive/primary/+files/ack_2.18-2_all.deb
...snip...
$ sudo dpkg -i ack_2.18-2_all.deb
...snip...
$ ack --version
ack 2.18
Running under Perl 5.26.0 at /usr/bin/perl

Copyright 2005-2017 Andy Lester.

This program is free software.  You may modify or distribute it
under the terms of the Artistic License v2.0.

Si el dpkgcomando falla para usted, probablemente sea porque le falta alguna dependencia que ya tengo. Intente con apt installcualquier dependencia faltante y luego ejecute la dpkglínea nuevamente.

Me gusta más este enfoque que usar CPAN, porque APT / dpkg aún puede ver que este paquete está instalado y podrá actualizarlo más tarde una vez que Ubuntu solucione su situación de compilación.

(Gracias a Axel Beckert por publicar el enlace al informe de error de Launchpad, que es de donde saqué esta idea).

Mark E. Haase
fuente