Ubuntu 17.10 depolarında ack bulunamadı


14

Ben yüklemeye çalışıyorum ackaracılığı aptama artık depolarındakii kullanılabilir görünüyor. Her ikisi de:

sudo apt install ack
sudo apt install ack-grep

aşağıdaki hatayı verin:

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

17.10 depolarında artık mevcut değil mi?


İlk önce deneyin sudo apt update.
arupgsh

1
@muru Teşekkürler, ancak bağlantınız listede olmadığı için kullanılamadığını gösteriyor artful, değil mi? Packages.ubuntu.com/search?suite=artful&keywords=ack

3
Hmm, evet, launchpad.net/ubuntu/+source/ack/2.14-5/+publishinghistory kırıldığı için kaldırıldığını gösteriyor
muru

3
Merhaba, burada ack yaratıcısı. Durumun farkındayım, ama kişisel olarak bu konuda neler yapabileceğimi bilmiyorum. İşte ack bug tracker'da
Andy Lester

Yanıtlar:


12

Ack, Ubuntu 17.10 Artful'da bir test hatasına sahiptir ve geçene kadar Ubuntu'dan hariç tutulmuştur . Perl Artful'da yükseltildi ve eski ack sürümü yeni Perl tarafından desteklenmiyor. Yeni sürüm tüm testlerini geçmiyor. Test başarısızlığı, Ubuntu altında çalıştırılan test çerçevesindeki sorunlardan kaynaklanır (Debian'da iyi çalışıyor olsa bile.) Geçen yeni bir sürüm yakında yayınlanacak .

Bu arada, geçici çözüm, ack ana sayfasında önerildiği gibi CPAN aracılığıyla yüklemektir . Önceden CPAN yüklü değilse, önce yüklemeniz gerekir:

sudo apt install cpanminus

Sonra ack yüklemek için kullanabilirsiniz:

sudo cpanm install App::Ack

Oluşturur ve test eder, bu yüzden yaklaşık 2 dakika sürer, ancak tamamlandıktan sonra yolunuzda olacaktır /usr/local/bin/ack.

Standart apt ve cpan depolarını kullandığından bu kurulum seçeneğini beğendim. Otomatik araçlar tarafından yükseltilecek Perl kütüphanelerini kullanır. Ansible gibi otomatik araçlarda kolayca uygulanabilir.


2
Eğer cpanminus yüklüyorsunuz Muhtemelen eğer gerçekten o zaman bunu kullanarak yüklemek istiyorum: sudo cpanm App::Ack.
Joel Berger

3
Aslında, şu anda olduğu gibi , Perl veya Ack ile ilgili bir sorun değildir (testler neredeyse aynı Debian derleme sisteminde aynı sürümlerle geçer). Şu anda Ubuntu derleme sisteminde bir hata olduğu varsayılıyor.
mniess

6

Ne yazık ki ack17.10 depolarında değil. Çözüm, web sitesindeki talimatlara göre manuel olarak yüklemektir .

İşte yaptım:

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

2
Rastgele web sitelerinden yazılım yüklemek için bir tür questonable görünse de, beyondgrep.com resmi ack web sitesidir.
Stephen Ostermiller

1
Ack'in tek dosya sürümü, içinde bir güvenlik kusuru bulunursa otomatik olarak güncellenmeyecek gerekli kitaplıkların kendi kopyalarını kullanır. Ack'in kurulduğu andan itibaren kütüphane sürümlerini kullanıyor. Bu, kurulum sırasında bile en güncel sürümler olmayabilir. Bu çözümü kullanırsanız, tek dosya yüklemelerinde ek güvenlik endişeleri olduğunu bilmeniz gerekir.
Stephen Ostermiller

Kullanmak yerine bir astar 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

Lütfen yapma. Aksine, başka bir Ubuntu sürümünden (hatta Debian'dan) ack .deb paketini kullanın. Böylece en azından kullanılan tüm kütüphaneler için güvenlik güncellemeleri alırsınız.
Axel Beckert

Benim için çalışan tek yöntem buydu.
Theodore R. Smith

4

Ubuntu'nun otomatik olarak yüklenen paket testinde başarısız olan paketler , en azından evren arşivinden (düzenli olarak içe aktarılan ve Debian Kararsız'dan otomatik olarak alınan) olmayan bir sürüme dahil değildir.

Ubuntu 17.10 Artful Release döngüsünde meydana gelen bir değişiklik nedeniyle, ack'in Ubuntu'daki otomatik ağırlık testini bozdu ve bu nedenle ack'in Ubuntu sürümlerine dahil edilmesini engelledi . Hatta şimdiki gelişme anlık bulamıyorum bionic, ancak bir çizgi eklerseniz bunu yükleyebilirsiniz bionic-proposedadresinden Müşteri sources.list.

Bu değişimin tam olarak ne olduğu, sırasıyla sebebinin (belki de Ubuntu'nun otomatik ağırlık testinde bir hata) ve tetikleyicinin ne olduğu hala belirsizdir. (Belki Perl 5.26'ya geçiş Ubuntu'nun otomatik ağırlık testinde bir sorun sergiledi.)

Yine de, ack'in Debian'daki otomatik ağırlık testi sorunsuz bir şekilde geçtiğinden , bu sorunun ubuntu'ya özgü olduğu açıktır . Ve Biyonik Bu test hatalarını gösteren değil Ubuntu 18.04 bir gelişme anlık yerel autopkgtest çalışan ya. (Ve Ubuntu üzerine inşa edilmiş gibi görünüyor. Ve aynı test paketi de derleme zamanında çalıştırılıyor ve geçmediyse, paket çok daha ciddi bir sorun olarak kabul edilmeyecek şekilde inşa edilmedi.)

Sorunun Ubuntu'nun otomatik kilolu altyapısında bir yerde gizlendiğine dair bir başka ipucu da, çoğu test başarısızlığının girdilerini beklenen dosyalar yerine aniden STDIN olarak görmesidir .

Bu garip ubuntu-autopkgtest'e özgü test hatalarının altında yatan nedenlerle ilgili herhangi bir ipucu, ya uygun fırlatma hatası raporunda ya da yukarı akış hata raporunda çok takdir edilmektedir .


2

Yukarıdaki açıklamalarda belirtildiği gibi, paket 17.10'da kırıldığından beri kaldırılmıştır, bu nedenle evet, ackşimdilik 17.10 depolarında hayır .

Sanırım ne zaman tekrar kullanılabilir olacağını öğrenmek için https://packages.ubuntu.com/search?suite=artful&keywords=ack adresine göz kulak olmalıyım .


1
Muhtemelen olmayacak. Depolarda bulunmayan bir paketin backport üzerinden sunulması son derece nadirdir. 18.04 için kesilip kesilmediğini görmek için launchpad.net/ubuntu/bionic/+source/ack adresine göz atabilirsiniz (bu bir lts olduğundan, belki de çalışmasını sağlamak için daha fazla çaba
harcanabilir

Anlayabildiğim kadarıyla, bu soruna neden olan "kırık", Debian ambalajını tetikleyen bir yazım hatasıydı.
Andy Lester

1
@AndyLester: Hayır, bu yazım hatasının onunla hiçbir ilgisi yoktu. Debian Perl Ekibi tarafından Lintian Geçersiz Kılma yoluyla yanlış pozitif olarak işaretlendi.
Axel Beckert

"Kırık" (Cc @muru) bu durumda otomatik olarak yüklenen paket testinde başarısız olduğu anlamına gelir (kısa: autopkgtest). Göz önünde bulundurulması gereken sayfa autopkgtest.ubuntu.com/packages/ack ve alt sayfalarıdır. Ve ack Debian'ın otomatik ağırlığını geçtiği için bu açıkça Ubuntu'ya özgü bir konudur .
Axel Beckert

@AxelBeckert biliyorum. Bunu bilet sayfasında tartıştık. Bu yazım yorumunu altı hafta önce yazdım.
Andy Lester

1

Ubuntu 18.04 paketini Ubuntu 17.10 kutuma yükleyebildim:

$ 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.

Eğer dpkgkomut sizin için başarısız Eğer zaten sahip olduğu bazı bağımlılık kaçırıyoruz, bunun nedeni muhtemelen. apt installEksik bağımlılıkları deneyin ve ardından dpkgsatırı tekrar çalıştırın .

APT / dpkg hala bu paketin yüklü olduğunu görebilir ve Ubuntu derleme durumlarını çözdüğünde daha sonra yükseltebilir.

(Bu fikri aldığım yer olan Launchpad hata raporuna bağlantı gönderdiği için Axel Beckert'e teşekkürler.)

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.