ubuntu'da ack-grep


19

Sadece merak ediyorum, son zamanlarda ack (ubuntu'da ack-grep) yükledim ve sadece ack-grep almak için ack'e nasıl yazacağımı anlayamıyorum (bazı nedenlerden dolayı ack bir kanji tercümanı tarafından alınır).

Kabuktaki şeyi yumuşatmaktan daha iyi bir yol var mı (bu şekilde küresel değildir ve örneğin vim'de uyandıramaz).

Çok teşekkürler!

Yanıtlar:


16

Sen bağlayabilir veya kopya ack-grepiçin /usr/local/binbu PATH içinde prioritary alır böylece:

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

Veya davey'in önerdiği gibi, ackihtiyacınız yoksa kurtulun :

sudo apt-get remove ack

Başka bir çözüm kullanmanızı gerektirir dpkg-divertanlatmak için dpkgtüm paketler onların sahip olmak istedikleri /usr/bin/acklokal olarak değiştirildi ve daha sonra bağlantı ack-grepiçin ackyolu.


20

Ubuntu / Debian'da "yönlendirme" yapabilirsiniz ack-grep:

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

8

Debian Alternatifleri sistemini kullanın.

$ 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

Komut doğru şekilde almak zor, ancak çözüm aşağıdaki nedenlerle dpkg-divert'ten üstündür:

  1. Paket kurulumunu zorlamaz veya geçersiz kılmaz
  2. Manpage için bir bağımlı bağlantı ayarlamayı etkinleştirir

Debian Alternatifleri hakkında daha fazla bilgi için: http://wiki.debian.org/DebianAlternatives

Alternatifin kurulması, ack-grep komutunun çağrılmasını ackve kullanarak sayfanın okunmasını sağlar man ack.


1
Bu en iyi cevap IMHO!
Renaud

Bunu yapmanın "doğru" Debian / Ubuntu yoludur.
tgies

7

En az rahatsız edici:

takma ad ack = ack-grep


Soru, takma addan başka bir şey ister, bu çözümün oldukça sınırlı olduğunu ve Vim veya bash komut dosyalarından bombardımana yardımcı olamayacağını doğru bir şekilde belirtir.
Ian Greenleaf Young

@IanGreenleaf vay, haklısın - bunu 4 yıl sonra görmek utanç verici! Hata: /
broady

7

Yapılacak en kolay şey apan'ı cpan ile kurmaktır. / Usr / bin'e göre önceliği olan / usr / local / bin dizinine kurulacaktır. Sadece koş:

sudo cpan App::Ack

veya cpan istemciniz yoksa:

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

2
Ubuntu 10.04 LTS'de benim için çalışmadı. Hata mesajı: "Aptal olma, daniel bosold'u kuramazsın". Ama sudo cpan -i App::Acköyle.
geekQ

Bunun güvenli olmadığını düşünen tek kişi ben miyim?
Nisan'ta

2

Kanji çevirmeninin zaten / usr / bin / ack olmadığını ve konumunun yolunuzda / usr / bin'den daha sonra olduğunu varsayarsak, muhtemelen bunu yapabilirsiniz:

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

Bu işlem, hedef varsa işlemi onaylamanızı ister ve evet'i seçerseniz bir yedek oluşturur.


2
Ne yazık ki kanji ack / usr / bin'de yaşıyor, bu yüzden onsuz yaşayabilirsen: sudo apt-get remove ack
davey

0

Eğer bash dosyanızı kopyalarsanız o diğer adı başka bir makineye aktarma tehlikesini kaydeder gibi symlink seçeneği ile gitmek istiyorum.

buna gitmek, benim ubuntu 12.04 inşa iyi çalışıyor

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

0

Benim çözümüm o kadar temiz değil çünkü yazıyor /bin/ama /usr/bin/ackbir ikili ve bir sembolik olduğu sürece , bu şekilde düzeltmek benim için daha kolaydı.

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

Hangisini kullanacağınızı seçmek için

sudo update-alternatives --config ack
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.