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


14

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

sudo apt install ack
sudo apt install ack-grep

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

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

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


먼저을 시도하십시오 sudo apt update.
arupgsh

1
@muru 감사하지만 귀하의 링크는 이후 사용할 수 없음을 보여줍니다artful 없음을 표시합니다. 맞습니까? packages.ubuntu.com/search?suite=artful&keywords=ack

3
흠. launchpad.net/ubuntu/+source/ack/2.14-5/+publishinghistory 는 손상으로 인해 제거되었음을 나타냅니다
muru

3
안녕하세요, ack 제작자입니다. 나는 상황을 알고 있지만, 개인적으로 무엇을 할 수 있는지 모르겠다. 여기에 더 많은 정보와 ACK 버그 추적기 표는 다음과 같습니다 github.com/beyondgrep/ack2/issues/652은
앤디 레스터

답변:


12

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과 같은 자동화 된 도구로 쉽게 구현할 수 있습니다.


2
cpanminus를 설치하는 경우 실제로 다음을 사용하여 설치하려고합니다 sudo cpanm App::Ack..
Joel Berger

3
사실, 현재로서는 Perl 또는 Ack의 문제 가 아닙니다 (테스트는 거의 동일한 데비안 빌드 시스템에서 동일한 버전으로 테스트합니다). 현재 우분투 빌드 시스템의 버그로 가정합니다.
mniess

6

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

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

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

2
임의의 웹 사이트에서 소프트웨어를 설치하는 것은 다소 어려워 보이지만 beyondgrep.com은 공식 ack 웹 사이트입니다.
Stephen Ostermiller

1
ack의 단일 파일 버전은 보안 결함이 발견되면 자동으로 업데이트되지 않는 필수 라이브러리의 자체 사본을 사용합니다. ack가 빌드 될 당시의 라이브러리 버전을 사용하고 있으며 설치시 최신 버전이 아닐 수도 있습니다. 이 솔루션을 사용하는 경우 단일 파일 설치와 관련된 추가 보안 문제가 있음을 알고 있어야합니다.
Stephen Ostermiller

사용하는 대신 하나의 라이너 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

제발 하지마 오히려 다른 우분투 릴리스 (또는 데비안)의 ack .deb 패키지를 사용하십시오. 따라서 최소한 사용 된 모든 라이브러리에 대한 보안 업데이트를 받으십시오.
Axel Beckert

이것이 나를 위해 일한 유일한 방법이었습니다.
Theodore R. Smith

4

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 특정 테스트 실패의 근본 원인에 대한 힌트는 해당 런치 패드 버그 보고서 또는 해당 업스트림 버그 보고서 에서 매우 높이 평가됩니다 .


2

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

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


1
아마 아닐 것입니다. 아직 저장소에없는 패키지를 백 포트를 통해 사용할 수있는 경우는 매우 드 rare니다. launchpad.net/ubuntu/bionic/+source/ack 에서 계속 18.04를 삭감했는지 확인할 수 있습니다 (그것이 lts이기 때문에 더 많은 노력을 기울일 수 있습니다)
muru

내가 알 수있는 한,이 문제를 일으킨 "깨진"것은 데비안 패키징을 넘어 뜨린 철자 오류였습니다.
Andy Lester

1
@AndyLester : 아니요, 철자 오류는 아무 관련이 없습니다. 데비안 Perl 팀의 Lintian Override를 통해 오 탐지로 표시되었습니다.
Axel Beckert

"broken"(Cc @muru)은이 경우 자동 설치 패키지 테스트 (단축 : autopkgtest)에 실패했음을 의미합니다. 계속 지켜봐야 할 관련 페이지는 autopkgtest.ubuntu.com/packages/ack 이며 하위 페이지입니다. ack이 데비안의 autopkgtest를 통과함에 따라 이것은 분명히 우분투 관련 문제 입니다.
Axel Beckert

@AxelBeckert 알고 있습니다. 티켓 페이지에서 이에 대해 논의했습니다. 나는 6 주 전에 철자 주석을 썼습니다.
Andy Lester

1

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에게 감사합니다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.