Próbuję zainstalować ack
za pośrednictwem, apt
ale 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?
sudo apt update
.artful
nie ma go na liście, prawda? packages.ubuntu.com/search?suite=artful&keOdpowiedzi:
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ć:
Następnie możesz go użyć do zainstalowania potwierdzenia:
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.
źródło
sudo cpanm App::Ack
.Niestety
ack
nie 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:
źródło
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"
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ę dobionic-proposed
do swojejsources.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 .
źródło
Jak wskazano w powyższych komentarzach @muru, pakiet został usunięty, ponieważ został uszkodzony w wersji 17.10, więc tak, nie,
ack
na 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
Byłem w stanie zainstalować pakiet Ubuntu 18.04 na moim Ubuntu 17.10:
Jeśli
dpkg
polecenie się nie powiedzie, to prawdopodobnie dlatego, że brakuje ci zależności, którą już mam. Spróbujapt install
usunąć brakujące zależności, a następniedpkg
ponownie 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ł).
źródło