Impossible de trouver ack dans les référentiels Ubuntu 17.10

14

J'essaie d'installer ackvia aptmais il semble qu'il ne soit plus disponible dans les dépôts. Tous les deux:

sudo apt install ack
sudo apt install ack-grep

donner l'erreur suivante:

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

N'est-il plus disponible dans les référentiels 17.10?

Axel Beckert
la source
D'abord, essayez sudo apt update.
arupgsh
1
@muru Merci mais votre lien indique qu'il n'est pas disponible car il artfuln'est pas répertorié, n'est-ce pas? packages.ubuntu.com/search?suite=artful&keywords=ack
3
Hmm, oui, launchpad.net/ubuntu/+source/ack/2.14-5/+publishinghistory indique qu'il a été supprimé en raison d'une rupture
muru
3
Salut, créateur d'ack ici. Je suis au courant de la situation, mais je ne sais pas si je peux personnellement y faire quelque chose. Voici un billet dans le traqueur de bogues ack avec plus d'informations: github.com/beyondgrep/ack2/issues/652
Andy Lester

Réponses:

12

Ack a un échec de test dans Ubuntu 17.10 Artful et il a été exclu d'Ubuntu jusqu'à ce qu'il passe. Perl est mis à niveau sur Artful et l'ancienne version ack n'est pas prise en charge par le nouveau Perl. La nouvelle version ne passe pas tous ses tests. L'échec du test est causé par des problèmes avec le framework de test exécuté sous Ubuntu (même s'il fonctionne correctement dans Debian). Une nouvelle version qui réussira sera bientôt publiée .

En attendant, une solution consiste à l'installer via CPAN comme suggéré sur la page d'accueil ack . Si vous n'avez pas encore installé CPAN, vous devez d'abord l'installer:

sudo apt install cpanminus

Ensuite, vous pouvez l'utiliser pour installer ack:

sudo cpanm install App::Ack

Il le construira et le testera, donc cela prendra environ 2 minutes, mais une fois terminé, il sera sur votre chemin à /usr/local/bin/ack.

J'aime cette option d'installation car elle utilise les référentiels apt et cpan standard. Il utilise des bibliothèques Perl qui seront mises à niveau par des outils automatisés. Il peut être facilement implémenté dans des outils automatisés tels que Ansible.

Stephen Ostermiller
la source
2
On peut supposer que si vous installez cpanminus que vous voulez réellement installer ensuite l' utiliser: sudo cpanm App::Ack.
Joel Berger
3
En fait, tel qu'il est actuellement, ce n'est pas un problème avec Perl ou Ack (les tests passent avec les mêmes versions dans le système de construction Debian presque identique). Actuellement, il est supposé être un bogue dans le système de construction Ubuntu.
mniess
6

Malheureusement, il ackn'est pas dans les référentiels 17.10. Une solution de contournement consiste à l'installer manuellement conformément aux instructions sur son site Web .

Voici ce que j'ai fait:

$ sudo su
# curl https://beyondgrep.com/ack-2.18-single-file > /usr/local/bin/ack && chmod 0755 /usr/local/bin/ack
Pēteris Caune
la source
2
Bien qu'il semble assez facile d'installer des logiciels à partir de sites Web aléatoires, Beyondgrep.com est le site Web officiel d'Ack.
Stephen Ostermiller
1
La version à fichier unique de ack utilise ses propres copies des bibliothèques requises qui ne seront pas automatiquement mises à jour si une faille de sécurité y est détectée. Il utilise les versions de la bibliothèque au moment de la création de ack, qui ne sont peut-être pas les versions les plus à jour, même au moment de l'installation. Si vous utilisez cette solution, vous devez savoir qu'il existe des problèmes de sécurité supplémentaires avec les installations à fichier unique.
Stephen Ostermiller
Une doublure au lieu d'utiliser 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
Je vous en prie, ne le faites pas. Utilisez plutôt le paquet ack .deb d'une autre version d'Ubuntu (ou même de Debian). Vous obtenez donc au moins des mises à jour de sécurité pour toutes les bibliothèques utilisées.
Axel Beckert
C'était la seule méthode qui fonctionnait pour moi.
Theodore R. Smith,
4

Les paquets qui échouent au test automatique des paquets tel qu'installé d'Ubuntu ne sont pas inclus dans une version, du moins ceux qui ne proviennent pas de l'archive de l'univers (qui est importée régulièrement et automatisée depuis Debian Unstable).

En raison d'un changement au cours du cycle de sortie artistique d'Ubuntu 17.10, quelque chose a cassé l'autopkgtest d'ack dans Ubuntu et a donc empêché l'ack d'être inclus dans les versions d'Ubuntu. Vous ne pouvez même pas le trouver dans l'instantané de développement actuel bionic, mais vous pouvez l'installer si vous ajoutez une ligne pour bionic-proposedà votre sources.list.

On ne sait toujours pas exactement quel était ce changement, respectivement quelle en était la raison (peut-être un bogue dans l'infrastructure autopkgtest d'Ubuntu) et quel est le déclencheur. (Peut-être que le passage à Perl 5.26 a présenté un problème dans l'infrastructure autopkgtest d'Ubuntu.)

Ce qui est clair cependant, c'est que ce problème est spécifique à ubuntu puisque l'autopkgtest d'ack dans Debian passe sans aucun problème. Et exécuter autopkgtest localement sur un instantané de développement d'Ubuntu 18.04 Bionic ne présente pas non plus ces échecs de test . (Et il semble s'appuyer sur Ubuntu. Et la même suite de tests est également exécutée au moment de la construction, et si elle ne passait pas, le package ne serait pas construit, ce qui est considéré comme un problème beaucoup plus grave.)

Une autre indication que le problème est caché quelque part dans l'infrastructure autopkgtest d'Ubuntu est le fait que la plupart des échecs de test considèrent leur entrée soudainement comme STDIN au lieu des fichiers attendus .

Toute indication sur les raisons sous-jacentes de ces étranges échecs de test spécifiques à ubuntu-autopkgtest est très appréciée dans le rapport de bogue du tableau de bord correspondant ou dans le rapport de bogue en amont correspondant .

Axel Beckert
la source
2

Comme @muru l'a indiqué dans les commentaires ci-dessus, le paquet a été supprimé depuis qu'il est cassé en 17.10, donc oui, non ack dans les référentiels 17.10 pour l'instant.

Je suppose que je devrais garder un œil sur https://packages.ubuntu.com/search?suite=artful&keywords=ack pour savoir quand il sera à nouveau disponible.


la source
1
Ce ne sera probablement pas le cas. Il est extrêmement rare qu'un package qui n'est pas déjà dans les dépôts soit disponible via les rétroportages. Vous pouvez garder un œil sur launchpad.net/ubuntu/bionic/+source/ack pour voir si cela fait la coupe pour 18.04 (puisque c'est un lts, ​​peut-être plus d'efforts pourraient être mis pour le faire fonctionner)
muru
Pour autant que je sache, le "cassé" qui a causé ce problème était une faute d'orthographe qui a déclenché le paquet Debian.
Andy Lester
1
@AndyLester: Non, cette faute d'orthographe n'a rien à voir avec ça. Il a même été marqué comme faux positif via un remplacement de Lintian par l'équipe Debian Perl.
Axel Beckert
"broken" (Cc @muru) signifie dans ce cas qu'il a échoué au test automatique du package tel qu'installé (court: autopkgtest). La page pertinente à surveiller est autopkgtest.ubuntu.com/packages/ack et ses sous-pages. Et il s'agit clairement d'un problème spécifique à Ubuntu car ack réussit l'autopkgtest de Debian .
Axel Beckert
@AxelBeckert je sais. Nous en avons discuté sur la page des tickets. J'ai écrit cette orthographe il y a six semaines.
Andy Lester
1

J'ai pu installer le paquet Ubuntu 18.04 sur ma boîte 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 la dpkgcommande échoue pour vous, c'est probablement parce qu'il vous manque une dépendance que j'ai déjà. Essayez apt installtoutes les dépendances manquantes, puis réexécutez la dpkgligne.

J'aime mieux cette approche que d'utiliser CPAN, car APT / dpkg peut toujours voir que ce package est installé et pourra le mettre à niveau plus tard une fois qu'Ubuntu aura réglé sa situation de construction.

(Merci Axel Beckert pour avoir publié un lien vers le rapport de bogue Launchpad, c'est là que j'ai eu cette idée.)

Mark E. Haase
la source