Не удалось найти ack в репозиториях Ubuntu 17.10

Я пытаюсь установить ack через apt но кажется, что это больше не доступно в repos. Оба:

sudo apt install ack
sudo apt install ack-grep

дайте следующую ошибку:

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

Это больше не доступно в этих 17,10 репозиториях?

14
задан 12 December 2017 в 21:25

5 ответов

Как указано @muru в комментариях выше, пакет был удален, поскольку он не работает в 17.10, так что да, пока нет ack в репозиториях 17.10.

Думаю, мне следует следить за https://packages.ubuntu.com/search?suite=artful&keywords=ack , чтобы узнать, когда он снова станет доступен.

2
ответ дан 23 November 2019 в 02:56

У Ack есть тестовый сбой в Ubuntu 17.10 Artful, и он был исключен из Ubuntu до тех пор, пока он не пройдет. Perl обновлен до Artful, и старая версия ack не поддерживается новым Perl. Новая версия не проходит все свои испытания. Неудача теста вызвана проблемами со средой тестирования, работающей под Ubuntu (даже если она хорошо работает в Debian.) Скоро будет выпущена новая версия, которая проходит .

Тем временем, обходной путь должен установить его через CPAN, как предложено на домашней странице ack . Если у вас еще не установлен CPAN, вам нужно сначала установить его:

sudo apt install cpanminus

Затем вы можете использовать его для установки ack:

sudo cpanm install App::Ack

Он соберет и протестирует его , так что это займет около 2 минут, но после того, как это будет сделано, это будет на вашем пути в /usr/local/bin/ack.

Мне нравится этот вариант установки, потому что он использует стандартные репозитории apt и cpan. Он использует библиотеки Perl, которые будут обновлены автоматизированными инструментами. Это может быть легко реализовано в автоматизированных инструментах, таких как Ansible.

12
ответ дан 23 November 2019 в 02:56

К сожалению, ack нет в 17.10 хранилищах. Обходной путь должен установить это вручную согласно инструкциям на его веб-сайте .

Вот что я сделал:

$ sudo su
# curl https://beyondgrep.com/ack-2.18-single-file > /usr/local/bin/ack && chmod 0755 /usr/local/bin/ack
6
ответ дан 23 November 2019 в 02:56

Пакеты, которые не проходят Автоматическое тестирование пакетов в Ubuntu , не включены в выпуск, по крайней мере, из архива юниверса (который регулярно импортируется и автоматизируется из Debian Unstable).

Из-за изменений во время цикла Artful Release в Ubuntu 17.10 что-то сломало autopkgtest ack в Ubuntu и, следовательно, остановило ack от включения в релизы Ubuntu. Вы даже не можете найти его в текущем снимке разработки bionic, но вы можете установить его, если добавите строку для bionic-proposed в sources.list.

До сих пор неясно, что именно было этим изменением, соответственно, в чем причина (возможно, ошибка в инфраструктуре autopkgtest в Ubuntu) и каков триггер. (Возможно, переход на Perl 5.26 обнаружил проблему в инфраструктуре autopkgtest в Ubuntu.)

Однако ясно, что эта проблема связана с ubuntu, поскольку autopkgtest в ack для Debian проходит без проблем. И локальный запуск autopkgtest для моментального снимка разработки Ubuntu 18.04 Bionic также не демонстрирует эти неудачные тесты . (И, похоже, он основан на Ubuntu. И тот же набор тестов также запускается во время сборки, и если он не пройдет, пакет не будет собран, что считается гораздо более серьезной проблемой.)

Еще один намек на то, что проблема скрыта где-то в инфраструктуре autopkgtest в Ubuntu, заключается в том, что большинство неудачных тестов рассматривают свои входные данные внезапно как STDIN вместо ожидаемых файлов .

Любой намек на основные причины этих странных неудачных тестов, характерных для ubuntu-autopkgtest, очень ценится либо в сообщении об ошибке панели запуска , либо в согласно вышестоящему сообщению об ошибке .

. 1115]
4
ответ дан 23 November 2019 в 02:56

Мне удалось установить пакет Ubuntu 18.04 на мою коробку 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.

Если команда dpkg не сработала для вас, это возможно потому, что вы пропустили какую-то зависимость, которая у меня уже есть , Попробуйте apt install найти все отсутствующие зависимости, а затем снова запустите строку dpkg.

Мне нравится этот подход лучше, чем использование CPAN, потому что APT / dpkg все еще может видеть, что этот пакет установлен, и сможет обновить его позже, как только Ubuntu определит свою ситуацию сборки.

(Спасибо Акселю Беккерту за то, что он опубликовал ссылку на отчет об ошибке Launchpad, где я и получил эту идею.)

1
ответ дан 23 November 2019 в 02:56

Другие вопросы по тегам:

Похожие вопросы: