우분투 17.10 저장소에서 ack를 찾을 수 없습니다 ack sudo apt install

ack통해 설치하려고 apt하지만 더 이상 repos에서 사용할 수없는 것 같습니다. 양자 모두:

sudo apt install ack
sudo apt install ack-grep

다음 오류를 제공하십시오.

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

17.10 리포지토리에서 더 이상 사용할 수 없습니까?



답변

Ack는 Ubuntu 17.10 Artful에서 테스트 실패를했으며 통과 할 때까지 Ubuntu에서 제외되었습니다 . Perl은 Artful에서 업그레이드되었으며 이전 ack 버전은 새로운 Perl에서 지원되지 않습니다. 새 버전은 모든 테스트를 통과하지 못합니다. 테스트 실패는 데비안에서 제대로 작동하더라도 우분투에서 실행되는 테스트 프레임 워크의 문제로 인해 발생합니다. 새로운 버전은 곧 출시 될 것 입니다.

그 사이에 해결 방법은 ack 홈페이지 에서 제안한대로 CPAN을 통해 설치하는 것 입니다. CPAN이 아직 설치되지 않은 경우 먼저 설치해야합니다.

sudo apt install cpanminus

그런 다음이를 사용하여 ack를 설치할 수 있습니다.

sudo cpanm install App::Ack

빌드하고 테스트하므로 약 2 분이 걸리지 만 완료되면의 경로에 /usr/local/bin/ack있습니다.

이 설치 옵션은 표준 apt 및 cpan 리포지토리를 사용하기 때문에 좋아합니다. 자동화 된 도구로 업그레이드되는 Perl 라이브러리를 사용합니다. Ansible과 같은 자동화 된 도구로 쉽게 구현할 수 있습니다.


답변

슬프게도 ack17.10 저장소에는 없습니다. 해결 방법은 웹 사이트의 지침에 따라 수동 으로 설치하는 것 입니다.

내가 한 일은 다음과 같습니다.

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


답변

Ubuntu의 자동 설치 패키지 테스트에 실패한 패키지 는 최소한 유니버스 아카이브 (Debian Unstable에서 정기적으로 가져오고 자동으로 가져 오지 않음)가 아닌 릴리스에 포함되지 않습니다.

Ubuntu 17.10 Artful Release주기 동안 변경으로 인해 Ubuntu 에서 ack의 autopkgtest가 중단되어 ack이 Ubuntu 릴리스에 포함되지 않았습니다. 현재 개발 스냅 샷에서도 찾을 수 없지만 bionic에 라인을 추가하면 설치할 수 bionic-proposed있습니다 sources.list.

그 변화가 정확히 무엇인지, 각각 이유 (우분투 autopkgtest 인프라의 버그 일 수 있음)와 트리거가 무엇인지는 아직 확실하지 않습니다. (아마도 Perl 5.26으로 전환하면 우분투의 autopkgtest 인프라에서 문제가 발생했을 수 있습니다.)

분명한 것은 데비안에서 ack의 autopkgtest가 아무런 문제없이 통과하기 때문에이 문제는 우분투에 국한 된다는 것입니다 . 또한 Ubuntu 18.04 Bionic의 개발 스냅 샷에서 autopkgtest를 로컬로 실행해도 이러한 테스트 실패가 나타나지 않습니다 . (그리고 우분투에서 빌드하는 것 같습니다. 동일한 테스트 스위트도 빌드 타임에 실행되며, 통과하지 않으면 패키지가 빌드되지 않아 훨씬 더 심각한 문제로 간주됩니다.)

이 문제가 Ubuntu의 autopkgtest 인프라 어딘가에 숨겨져 있다는 또 다른 힌트는 대부분의 테스트 실패가 입력을 예상 파일 대신 STDIN으로 갑자기 간주 한다는 사실입니다 .

이러한 이상한 우분투 autopkgtest 특정 테스트 실패의 근본 원인에 대한 힌트는 해당 런치 패드 버그 보고서 또는 해당 업스트림 버그 보고서 에서 매우 높이 평가됩니다 .


답변

위의 주석에서 @muru가 지적했듯이 패키지는 17.10에서 깨진 이후 제거되었으므로 예, 아니오 ack 17.10 저장소 .

내가 눈을 유지해야 추측 https://packages.ubuntu.com/search?suite=artful&keywords=ack 를 다시 사용할 수있을 때 알고.


답변

Ubuntu 17.10 상자에 Ubuntu 18.04 패키지를 설치할 수있었습니다.

$ 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 회선을 다시 하십시오.

APT / dpkg는 여전히이 패키지가 설치되어 있고 Ubuntu가 빌드 상황을 정리 한 후에 나중에 업그레이드 할 수 있기 때문에 CPAN을 사용하는 것보다이 방법이 더 좋습니다.

(이 아이디어를 얻은 런치 패드 버그 보고서에 대한 링크를 게시 한 Axel Beckert에게 감사합니다.)


답변