우분투에서 ack-grep


19

나는 최근에 ack (우분투의 ack-grep)을 설치하고 ack-grep을 얻기 위해 ack를 입력하는 방법을 알 수 없습니다 (어떤 이유로 kan은 한자 번역가가 차지합니다).

쉘에서 물건의 별칭을 지정하는 것보다 더 좋은 방법이 있습니까?

고마워요!

답변:


16

PATH에서 우선 순위 ack-grep/usr/local/bin갖도록 링크하거나 복사 하십시오.

sudo ln -sf /usr/bin/ack-grep /usr/local/bin/ack

또는 davey가 제안한 것처럼 ack필요하지 않은 경우 제거 하십시오.

sudo apt-get remove ack

또 다른 해결책은 사용하여 포함 할 dpkg-divertdpkg은 모든 패키지가 가지고하려는 /usr/bin/ack로컬 이름을 변경 한 후 링크 ack-grepack경로에.


20

우분투 / 데비안에서는 "전환"할 수 있습니다 ack-grep:

sudo dpkg-divert --local --divert /usr/bin/ack --rename --add /usr/bin/ack-grep

8

데비안 대안 시스템을 사용하십시오.

$ update-alternatives --install /usr/bin/ack ack /usr/bin/ack-grep 100 \
--slave /usr/share/man/man1/ack.1p.gz ack.1p.gz /usr/share/man/man1/ack-grep.1p.gz

이 명령은 까다로울 수 있지만 다음과 같은 이유로 솔루션이 dpkg-divert보다 우수합니다.

  1. 패키지 설치를 강제 실행하거나 무시하지 않습니다
  2. 맨 페이지에 대한 슬레이브 링크 설정 가능

데비안 대안에 대한 자세한 정보는 여기 : http://wiki.debian.org/DebianAlternatives

대안을 설치하면 ack-grep을 호출하고을 ack사용하여 맨 페이지를 읽을 수 man ack있습니다.


1
이것이 가장 좋은 답변입니다 IMHO!
Renaud

이것이 "올바른"데비안 / 우분투 방법입니다.
tgies

7

가장 눈에 띄지 않는 것 :

별명 ack = ack-grep


질문은 별칭이 아닌 다른 것을 요구하며,이 솔루션은 꽤 제한적이며 Vim 또는 bash 스크립트에서 쉘링하는 데 도움이되지 않습니다.
이안 그린 리프 영

@IanGreenleaf 와우, 당신 말이 맞아요-4 년 후에는 창피 해요! 죄송합니다 : /
broady

7

가장 쉬운 방법은 cpan을 통해 ack를 설치하는 것입니다. / usr / bin보다 우선 순위가 높은 / usr / local / bin에 설치됩니다. 그냥 실행 :

sudo cpan App::Ack

또는 cpan 클라이언트가없는 경우 :

curl -L cpanmin.us | perl - --sudo App::Ack

2
Ubuntu 10.04 LTS에서 작동하지 않았습니다. 오류 메시지 : "멍청하지 말고 Daniel Bosold를 설치할 수 없습니다." 그러나 sudo cpan -i App::Ack그렇습니다.
geekQ

이것이 안전하지 않다고 생각하는 유일한 사람입니까?
SaveTheRbtz

2

한자 번역기가 아직 / usr / bin / ack이 아니며 그 위치가 / usr / bin보다 경로에 있다고 가정하면 다음과 같이 할 수 있습니다.

sudo ln -sib /usr/bin/ack-grep /usr/bin/ack

대상이 존재하면 작업을 확인하라는 메시지가 표시되고 예를 선택하면 백업이 생성됩니다.


2
불행히도 한자 ack은 / usr / bin에 살고 있으므로 그것없이 살 수 있다면 : sudo apt-get remove ack
davey

0

bash 파일을 복사하면 별칭을 다른 컴퓨터로 전송할 위험이 없으므로 symlink 옵션을 사용하십시오.

우분투 12.04 빌드에서 잘 작동합니다.

sudo apt-get install ack-grep
sudo ln -sf /usr/bin/ack-grep /usr/local/bin/ack

0

이 글은 쓰기 때문에 내 솔루션이 그렇게 깨끗하지 않습니다 /bin/하지만만큼 /usr/bin/ack바이너리가 아닌 심볼릭 링크, 내가 이런 식으로 문제를 해결하기가 쉬웠다.

sudo update-alternatives --install /bin/ack ack /usr/bin/ack 100
sudo update-alternatives --install /bin/ack ack /usr/bin/ack-grep 102

사용할 것을 선택하려면

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