Nie można znaleźć potwierdzenia w repozytoriach Ubuntu 17.10

14

Próbuję zainstalować ackza pośrednictwem, aptale wygląda na to, że nie jest już dostępny w repozytoriach. Obie:

sudo apt install ack
sudo apt install ack-grep

podać następujący błąd:

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

Czy nie jest już dostępny w repozytoriach 17.10?

Axel Beckert
źródło
Najpierw spróbuj sudo apt update.
arupgsh
1
@muru Dzięki, ale twój link pokazuje, że nie jest dostępny, ponieważ artfulnie ma go na liście, prawda? packages.ubuntu.com/search?suite=artful&ke
3
Hmm, tak, launchpad.net/ubuntu/+source/ack/2.14-5/+publishinghistory wskazuje, że został usunięty z powodu uszkodzenia
muru,
3
Cześć, twórca potwierdzenia tutaj. Zdaję sobie sprawę z tej sytuacji, ale nie wiem co, jeśli mogę coś z tym zrobić. Oto bilet do śledzenia błędów ack z dodatkowymi informacjami: github.com/beyondgrep/ack2/issues/652
Andy Lester

Odpowiedzi:

12

Ack ma błąd testowy w Ubuntu 17.10 Artful i został wykluczony z Ubuntu, dopóki nie przejdzie. Perl jest aktualizowany na Artful, a nowa wersja Ack nie jest obsługiwana przez nowy Perl. Nowa wersja nie przeszła wszystkich testów. Niepowodzenie testu jest spowodowane problemami ze środowiskiem testowym uruchomionym w systemie Ubuntu (nawet jeśli działa dobrze w Debianie) . Nowa wersja, która przejdzie, zostanie wkrótce wydana .

W międzyczasie obejściem problemu jest zainstalowanie go za pośrednictwem CPAN, zgodnie z sugestią na stronie głównej potwierdzenia . Jeśli nie masz jeszcze zainstalowanego CPAN, musisz go najpierw zainstalować:

sudo apt install cpanminus

Następnie możesz go użyć do zainstalowania potwierdzenia:

sudo cpanm install App::Ack

To zbuduje i przetestuje, więc zajmie to około 2 minut, ale po zakończeniu będzie na twojej drodze /usr/local/bin/ack.

Podoba mi się ta opcja instalacji, ponieważ używa standardowych repozytoriów apt i cpan. Korzysta z bibliotek Perla, które zostaną zaktualizowane przez automatyczne narzędzia. Można go łatwo wdrożyć w zautomatyzowanych narzędziach, takich jak Ansible.

Stephen Ostermiller
źródło
2
Przypuszczalnie jeśli instalujesz cpanminus rzeczywiście chcesz następnie zainstalować go używać: sudo cpanm App::Ack.
Joel Berger,
3
Faktycznie, na obecnym etapie jest to nie problem z Perl lub Ack (testy przechodzą z tymi samymi wersjami w niemal identycznym systemie build Debian). Obecnie zakłada się, że jest to błąd w systemie kompilacji Ubuntu.
mniess,
6

Niestety acknie ma go w repozytoriach 17.10. Obejściem tego problemu jest zainstalowanie go ręcznie zgodnie z instrukcjami na jego stronie internetowej .

Oto co zrobiłem:

$ sudo su
# curl https://beyondgrep.com/ack-2.18-single-file > /usr/local/bin/ack && chmod 0755 /usr/local/bin/ack
Pēteris Caune
źródło
2
Chociaż wygląda na to, że instalacja oprogramowania z przypadkowych stron wygląda na problematyczne, outsidegrep.com jest oficjalną stroną internetową.
Stephen Ostermiller
1
Wersja Ack z jednym plikiem wykorzystuje własne kopie wymaganych bibliotek, które nie zostaną automatycznie zaktualizowane, jeśli zostaną w nich znalezione luki w zabezpieczeniach. Korzysta z wersji bibliotecznych od momentu zbudowania ack, co może nie być najnowszą wersją nawet podczas instalacji. Korzystając z tego rozwiązania, należy pamiętać, że istnieją dodatkowe obawy dotyczące bezpieczeństwa przy instalacjach z jednym plikiem.
Stephen Ostermiller
Jeden liniowiec zamiast używać 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
Proszę nie. Zamiast tego użyj pakietu ack .deb z innego wydania Ubuntu (lub nawet Debiana). Dzięki temu otrzymujesz przynajmniej aktualizacje zabezpieczeń dla wszystkich używanych bibliotek.
Axel Beckert,
To była jedyna metoda, która działała dla mnie.
Theodore R. Smith
4

Pakiety, które nie przeszły automatycznego testowania zainstalowanych pakietów Ubuntu, nie są zawarte w wydaniu, przynajmniej te nie z archiwum wszechświata (importowanego regularnie i automatycznie z Debian Unstable).

Z powodu zmiany podczas cyklu Artful Release Ubuntu 17.10 coś zepsuło autopkgtest testu ack w Ubuntu, a zatem przestało być włączane do wydań Ubuntu. Nie można nawet znaleźć w aktualnej migawce rozwoju bionic, ale można go zainstalować, jeśli dodać linię do bionic-proposeddo swojej sources.list.

Nadal nie jest jasne, czym dokładnie była ta zmiana, z jakiego powodu (być może błąd w infrastrukturze autopkgtestu Ubuntu) i jaka jest przyczyna. (Być może przejście na Perl 5.26 powodowało problem z infrastrukturą autopkgtest Ubuntu.)

Oczywiste jest jednak, że ten problem jest specyficzny dla ubuntu, ponieważ autopkgtest ack w Debianie przechodzi bez żadnych problemów. I uruchomiony autopkgtest lokalnie na migawce rozwoju Ubuntu 18.04 Bionic nie wykazuje tych niepowodzeń testowe albo. (Wygląda na to, że opiera się na Ubuntu. I ten sam pakiet testowy jest również uruchamiany w czasie kompilacji, a jeśli nie przejdzie, pakiet nie zbuduje się, co jest uważane za znacznie poważniejszy problem).

Kolejną wskazówką, że problem jest ukryty gdzieś w infrastuktury Ubuntu z autopkgtestem, jest fakt, że większość niepowodzeń testowych traktuje swoje dane wejściowe nagle jako STDIN zamiast oczekiwanych plików .

Wszelkie wskazówki na temat przyczyn tych dziwnych błędów testowych związanych z autopkgtestem ubuntu są bardzo mile widziane w odpowiednim zgłoszeniu błędu startera lub w odpowiednim zgłoszonym wcześniej błędzie .

Axel Beckert
źródło
2

Jak wskazano w powyższych komentarzach @muru, pakiet został usunięty, ponieważ został uszkodzony w wersji 17.10, więc tak, nie, ackna razie w repozytoriach 17.10.

Chyba powinienem mieć oko na https://packages.ubuntu.com/search?suite=artful&ke words=ack, aby wiedzieć, kiedy będzie ponownie dostępny.


źródło
1
Prawdopodobnie nie będzie. Niezwykle rzadko zdarza się, że pakiet, którego jeszcze nie ma w repozytorium, jest dostępny za pośrednictwem backportów. Mógłbyś mieć oko na launchpad.net/ubuntu/bionic/+source/ack, aby sprawdzić, czy to pozwoli na cięcie do 18.04 (ponieważ jest to lts, ​​być może więcej wysiłku można by włożyć w to, aby działało)
mur
O ile mi wiadomo, „zepsuty”, który spowodował ten problem, to błąd ortograficzny, który wyłączył pakiet Debiana.
Andy Lester,
1
@AndyLester: Nie, ten błąd ortograficzny nie miał z tym nic wspólnego. Został nawet oznaczony jako fałszywie dodatni przez Lintian Override przez zespół Debian Perl.
Axel Beckert,
„zepsuty” (Cc @muru) oznacza w tym przypadku, że nie powiódł się automatyczny test zainstalowanych pakietów (w skrócie: autopkgtest). Odpowiednią stroną, na którą należy uważać, jest autopkgtest.ubuntu.com/packages/ack i jej podstrony. Jest to wyraźnie problem specyficzny dla Ubuntu, ponieważ potwierdzenie przechodzi autopkgtest Debiana .
Axel Beckert,
@AxelBeckert Wiem. Omówiliśmy to na stronie biletu. Napisałem ten komentarz pisowni sześć tygodni temu.
Andy Lester,
1

Byłem w stanie zainstalować pakiet Ubuntu 18.04 na moim 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.

Jeśli dpkgpolecenie się nie powiedzie, to prawdopodobnie dlatego, że brakuje ci zależności, którą już mam. Spróbuj apt installusunąć brakujące zależności, a następnie dpkgponownie uruchom linię.

Podobało mi się to podejście bardziej niż używanie CPAN, ponieważ APT / dpkg wciąż widzi, że ten pakiet jest zainstalowany i będzie mógł go zaktualizować później, gdy system Ubuntu zostanie rozwiązany.

(Dzięki Axel Beckert za opublikowanie linku do raportu o błędach Launchpad, w którym wpadłem na ten pomysł).

Mark E. Haase
źródło