J'essaie d'installer ack
via apt
mais il semble que ce ne soit plus disponible dans le dépôt. Tous les deux:
Sudo apt install ack
Sudo apt install ack-grep
donne l'erreur suivante:
E: Package 'ack-grep' has no installation candidate
N'est-il plus disponible dans les référentiels 17.10?
Comme @muru a indiqué dans les commentaires ci-dessus, le paquet a été supprimé puisqu'il est cassé dans 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 de nouveau disponible.
Ack a un échec du test sous Ubuntu 17.10 Artful et il a été exclu d'Ubunt jusqu'à ce qu'il réussisse. 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 dû à des problèmes avec le framework de test exécuté sous Ubuntu (même si cela fonctionne correctement dans Debian.) ne nouvelle version réussie sera bientôt disponible .
En attendant, une solution de contournement consiste à l'installer via CPAN comme suggéré sur la page d'accueil ack homepage . Si vous n'avez pas déjà 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 sera construit et testé, donc cela prendra environ 2 minutes, mais une fois terminé, il sera dans 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.
Malheureusement, ack
ne se trouve pas dans les référentiels 17.10. Une solution de contournement consiste à l'installer manuellement conformément aux instructions de 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
Les paquets qui échouent le test automatique des paquets tels qu'installés sous Ubunt ne sont pas inclus dans une version, du moins ceux qui ne sont pas contenus dans l'archive d'univers (importée régulièrement et automatisée depuis Debian Unstable).
En raison d'un changement intervenu au cours du cycle de publication astucieuse d'Ubuntu 17.10, quelque chose s'est cassé l'autopkgtest d'ack dans Ubunt et a donc empêché d'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
name__, mais vous pouvez l'installer si vous ajoutez une ligne pour bionic-proposed
à votre sources.list
.
On ne sait toujours pas quelle était exactement cette modification, quelle en était la raison (peut-être un bogue dans l'infrastructure autopkgtest d'Ubuntu) et quel était le déclencheur. (Peut-être que le passage à Perl 5.26 posait un problème dans l'infrastructure autopkgtest d'Ubuntu.)
Ce qui est clair, c'est que ce problème est spécifique à ubuntu puisque l'autopkgtest de ack dans Debian passe sans problème. Et exécuter autopkgtest localement sur un instantané de développement d’Ubuntu 18.04 Bionic ne présente pas ces échecs de test non plus. (Et il semble s'appuyer sur Ubuntu. Et la même suite de tests est exécutée au moment de la construction, et si elle ne passe pas, le paquet ne serait pas construit, ce qui est considéré comme un problème beaucoup plus grave.)
Un autre indice que le problème est caché quelque part dans l'infrastructure de l'autopkgtest d'Ubuntu est le fait que la plupart des échecs de test considèrent leur entrée comme un soudain 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 les rapport de bogue selon le tableau de bord ou dans le selon le rapport de bogue en amont .
J'ai pu installer le paquet Ubuntu 18.04 sur ma machine 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 commande dpkg
échoue pour vous, c'est probablement parce qu'il vous manque une dépendance que j'ai déjà. Essayez de apt install
toutes les dépendances manquantes, puis réexécutez la ligne dpkg
.
J'aime mieux cette approche que l’utilisation de CPAN, car APT/dpkg peut toujours voir que ce paquet est installé et qu’il pourra le mettre à jour ultérieurement une fois que la situation de construction d’Ubuntu sera réglée.
(Merci à Axel Beckert d’avoir posté un lien vers le rapport de bogue du Launchpad, c’est là que j’ai eu cette idée.)