Impossibile trovare ack nei repository Ubuntu 17.10


14

Sto cercando di installare acktramite aptma sembra che non sia più disponibile nei repository. Tutti e due:

sudo apt install ack
sudo apt install ack-grep

dare il seguente errore:

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

Non è più disponibile nei repository 17.10?


Innanzitutto, prova sudo apt update.
arupgsh,

1
@muru Grazie ma il tuo link mostra che non è disponibile poiché artfulnon è elencato, giusto? packages.ubuntu.com/search?suite=artful&keywords=ack

3
Hmm, sì, launchpad.net/ubuntu/+source/ack/2.14-5/+publishinghistory indica che è stato rimosso a causa di un
errore

3
Ciao, creatore di ack qui. Sono consapevole della situazione, ma non so cosa fare se potessi fare qualcosa al riguardo. Ecco un biglietto nel tracker di bug ack con maggiori informazioni: github.com/beyondgrep/ack2/issues/652
Andy Lester,

Risposte:


12

Ack ha un test fallito in Ubuntu 17.10 Artful ed è stato escluso da Ubuntu fino al suo superamento. Perl è aggiornato su Artful e la vecchia versione ack non è supportata dal nuovo Perl. La nuova versione non supera tutti i suoi test. Il fallimento del test è causato da problemi con il framework di test eseguito su Ubuntu (anche quando funziona bene in Debian.) Una nuova versione che passa verrà rilasciata a breve .

Nel frattempo, una soluzione alternativa è installarlo tramite CPAN come suggerito nella homepage di ack . Se non hai già installato CPAN, devi prima installarlo:

sudo apt install cpanminus

Quindi puoi usarlo per installare ack:

sudo cpanm install App::Ack

Costruirà e testerà, quindi ci vorranno circa 2 minuti, ma dopo averlo fatto sarà sul tuo percorso a /usr/local/bin/ack.

Mi piace questa opzione di installazione perché utilizza repository standard apt e cpan. Utilizza le librerie Perl che verranno aggiornate da strumenti automatizzati. Può essere facilmente implementato in strumenti automatizzati come Ansible.


2
Presumibilmente, se si sta installando cpanminus si vuole realmente installare usarlo: sudo cpanm App::Ack.
Joel Berger,

3
In realtà, nella sua forma attuale, è non è un problema con il Perl o Ack (test passano con le stesse versioni in quasi identico sistema di compilazione Debian). Attualmente si presume che sia un bug nel sistema di compilazione di Ubuntu.
mniess

6

Purtroppo acknon è nei repository 17.10. Una soluzione alternativa è installarlo manualmente secondo le istruzioni sul suo sito Web .

Ecco cosa ho fatto:

$ sudo su
# curl https://beyondgrep.com/ack-2.18-single-file > /usr/local/bin/ack && chmod 0755 /usr/local/bin/ack

2
Sebbene sembri in grado di installare software da siti Web casuali, beyondgrep.com è il sito Web ufficiale di Ack.
Stephen Ostermiller il

1
La versione a file singolo di ack utilizza le proprie copie delle librerie richieste che non verranno aggiornate automaticamente se viene rilevata una falla nella sicurezza. Sta utilizzando le versioni della libreria a partire dalla creazione di ack, che potrebbe non essere le versioni più aggiornate anche al momento dell'installazione. Se si utilizza questa soluzione, è necessario tenere presente che esistono ulteriori problemi di sicurezza con installazioni a file singolo.
Stephen Ostermiller il

Un solo passaggio invece di usare 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 il

Per favore, no. Piuttosto usa il pacchetto ack .deb da un'altra versione di Ubuntu (o persino Debian). Quindi almeno ricevi aggiornamenti di sicurezza per tutte le librerie utilizzate.
Axel Beckert,

Questo è stato l'unico metodo che ha funzionato per me.
Theodore R. Smith,

4

I pacchetti che non superano il test automatico dei pacchetti come installato di Ubuntu non sono inclusi in una versione, almeno quelli non dall'archivio dell'universo (che viene importato regolarmente e automatizzato da Debian Unstable).

A causa di una modifica durante il ciclo di rilascio di Ubuntu 17.10, qualcosa ha rotto l'autopkgtest di ack in Ubuntu e quindi ha smesso di essere incluso nelle versioni di Ubuntu. Non è nemmeno possibile trovarlo nell'istantanea di sviluppo corrente bionic, ma è possibile installarlo se si aggiunge una riga bionic-proposedal proprio sources.list.

Non è ancora chiaro, quale sia stato esattamente quel cambiamento, rispettivamente quale sia la ragione (forse un bug nell'infrastruttura di test automatico di Ubuntu) e quale sia il trigger. (Forse il passaggio a Perl 5.26 ha mostrato un problema nell'infrastruttura autopkgtest di Ubuntu.)

Ciò che è chiaro è che questo problema è specifico di Ubuntu poiché il test automatico di ack su Debian passa senza problemi. E l' esecuzione di autopkgtest localmente su un'istantanea di sviluppo di Ubuntu 18.04 Bionic non presenta neanche questi errori di test . (E sembra basarsi su Ubuntu. E la stessa suite di test viene eseguita anche in fase di compilazione, e se non passasse, il pacchetto non si sarebbe costruito, il che è considerato un problema molto più grave.)

Un altro suggerimento che il problema sia nascosto da qualche parte nell'infrastruttura di autopkgtest di Ubuntu è il fatto che la maggior parte degli errori di test considera improvvisamente il loro input come STDIN anziché i file previsti .

Qualsiasi suggerimento sui motivi sottostanti di questi strani fallimenti di test specifici di ubuntu-autopkgtest è molto apprezzato sia nel rapporto sui bug del launchpad o nel rapporto sui bug a monte .


2

Come indicato da @muru nei commenti sopra, il pacchetto è stato rimosso poiché è rotto nel 17.10, quindi sì, no acknei repository 17.10 per ora.

Immagino che dovrei tenere d'occhio https://packages.ubuntu.com/search?suite=artful&keywords=ack per sapere quando sarà di nuovo disponibile.


1
Probabilmente non lo sarà. È estremamente raro che un pacchetto che non sia già nei repository sia reso disponibile tramite backport. Potresti tenere d'occhio launchpad.net/ubuntu/bionic/+source/ack per vedere se riesce a tagliare il 18.04 (dato che è un lts, ​​forse si potrebbe fare uno sforzo maggiore per farlo funzionare)
muru

Per quanto ne so, il "rotto" che ha causato questo problema è stato un errore di ortografia che ha fatto scattare il pacchetto Debian.
Andy Lester,

1
@AndyLester: No, quell'errore di ortografia non aveva nulla a che fare con esso. È stato anche contrassegnato come falso positivo tramite una sostituzione di Lintian da parte del team Debian Perl.
Axel Beckert,

"rotto" (Cc @muru) significa in questo caso che ha fallito il test automatico del pacchetto installato (breve: autopkgtest). La pagina pertinente da tenere d'occhio è autopkgtest.ubuntu.com/packages/ack e le sue pagine secondarie. E questo è chiaramente un problema specifico di Ubuntu quando ack passa l'autopkgtest di Debian .
Axel Beckert,

@AxelBeckert Lo so. Ne abbiamo discusso sulla pagina del biglietto. Ho scritto quel commento ortografico sei settimane fa.
Andy Lester,

1

Sono stato in grado di installare il pacchetto Ubuntu 18.04 sulla mia casella 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.

Se il dpkgcomando non riesce per te, probabilmente è perché ti manca qualche dipendenza che già ho. Provare a apt installeventuali dipendenze mancanti e quindi eseguire dpkgnuovamente la riga.

Mi piace questo approccio meglio dell'uso di CPAN, perché APT / dpkg può ancora vedere questo pacchetto installato e sarà in grado di aggiornarlo in seguito una volta che Ubuntu avrà risolto la loro situazione di compilazione.

(Grazie a Axel Beckert per aver pubblicato il link alla segnalazione di bug del Launchpad, che è dove ho avuto questa idea.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.