“'X' programı henüz kurulu değil” sonrasında program kurmayı isteyin


18

Yüklü olmayan bir programı çalıştırmayı denerseniz bir mesaj alırsınız

The program 'x' is currently not installed. You can install it by typing: 
sudo apt-get install x

ve programı sizin için yüklemeyi teklif etmek yerine, gerçek komutu yazmanız gerekir. Bu davranış nasıl değiştirilebilir?

Yanıtlar:


17

Bu davranıştan sorumlu olan paket, komut bulunamadıKomut bulunamadı bulunamadı paketidir ve varsayılan olarak devre dışı bırakılmış olmasına rağmen zaten istenen davranışı içerir. Aşağıdaki satırı satırınıza ekleyerek etkinleştirebilirsiniz.~/.bashrc

export COMMAND_NOT_FOUND_INSTALL_PROMPT=1

Şimdi davranış şu şekilde değiştirildi:

The program 'x' is currently not installed. You can install it by typing:
sudo apt-get install x
Do you want to install it? (N/y)

Not: Python kilitlenmesi (özellikle AttributeError: 'str' object has no attribute 'decode') hakkında bir mesaj alırsanız , bu hata 1073919'dur . Raring ve Saucy için bir düzeltme zaten mevcut. Alternatif olarak ( yalnızca ileri düzey kullanıcılar ), dosyayı değiştirebilir, değiştirilmesi /usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.pygereken satırlar için hata raporuna eklenen farkı görebilirsiniz.

Düzenleme: Düzeltme şimdi Raring (SRU) 0.3ubuntu7.1 sürümünde ve Saucy 0.3ubuntu8 sürümünde yayımlandı.


1

Benim çözümüm güvenlik ve rahatlık arasında bir melez:

auto-apt, ortamlarında çalışan programların dosya erişimini denetler ve bir program kaldırılmış bir pakete ait olduğu bilinen bir dosyaya erişmeye çalışırsa, auto-apt apt-get kullanarak bu paketi yükler. Bu özellik çalışmak için apt ve sudo gerektirir. Ayrıca, hangi paketin istenen dosyayı içerdiğini aramak için basit bir veritabanı sağlar.

Her dosya erişiminin otomatik olarak apt ile önceden doğrulandığı bir ortama girdiğiniz bir terminal emülatörüdür ve mevcut değilse veritabanında (a la apt-file) arama yapın ve istediğiniz paketi indirin ve yükleyin, ardından programın devam etmesine izin verin . Kök olarak yürütmelisiniz:

sudo auto-apt

Bu, bir paket oluşturduğunuzda ve eksik başlıklar vb. İçin her yapılandırma hatasını arayan ekranın önünde olmak durumunda olmadığında kullanışlıdır.

Bu aynı zamanda sadece commandçalıştırmasını söyleyen programları yükleyebileceğiniz apt-get + apt dosyası değiştirme olarak da kullanılabilir .

Sisteminiz görünmediğinde onu açık bırakmamanız gerektiğini anlamalısınız, çünkü neredeyse kök kullanıcıyı kullanıyormuşsunuz gibi.

Man sayfası: http://derpi.tuwien.ac.at/cgi-bin/man/man2html?1+auto-apt


0

Otomatik kurulum kötü bir fikir olabilir. Yazarak kaydetmek isterseniz,

sudo apt-get install !!

nerede !!tarihinin son komutu ile değiştirilecektir. Muhtemelen bunu bir takma ad haline getirebilirsiniz, ancak !!değerlendirmeden nasıl ekleyeceğimi bilmiyorum .

@ Eliah-kagan ve @ gertvdijk tarafından belirtildiği gibi bazı uyarılar var. Bazı programlar yürüteceğiniz ikili dosya ile aynı paket adına sahip değildir. Ayrıca, ikiliye argümanlar iletilirken, bu bazı beklenmedik sonuçlara yol açabilir.


Tabii, benim önerimin harika bir çözüm olmadığını biliyorum, ama kullanıcıların ihtiyacına göre "yeterince iyi" işe yarayabilir.
l3dx

5
Komut adları (sistemdeki ikili dosya adı) paketin adıyla aynı olmayabilir.
gertvdijk

3
l3dx: Her ne kadar hala yanlışlarım olsa da (@ gertvdijk'in paket ve komut adlarının genellikle farklı olduğu ve orijinal komuta aktarılan ek komut satırı argümanlarının muhtemelen çok kötü etkileri ile ilgili endişeleri de dahil olmak üzere), bir şeyin üzerindeymişsiniz gibi görünüyor) . Biraz test yaptıktan sonra, bunun pratikte teorik olarak çalıştığından daha iyi çalıştığı görülüyor. Hala bu cevabı açıklığa kavuşturmak, uyarmak ve belki de diğer seçenekleri detaylandırmak için genişletmenizi öneriyorum. Her halükarda, bunu reddettim, ancak downvote'umu kaldırdım.
Eliah Kagan

0

Önerilen paketi hızlı bir şekilde kurmak için birkaç yöntem vardır:

  • export COMMAND_NOT_FOUND_INSTALL_PROMPT=1Gibi bir yere ekle~/.bashrc

    bu "en havalı" yol, tabii ki o kadar güvenli olmasa da, muhtemelen% 90'ı dahili bir "Teşekkürler, tam olarak bunu yapmanı istediğim şey!" tepki.

    (Bu yöntemin kişisel bir dezavantajı, cevabı hatırlaması / araması zor buluyorum, bu yüzden şimdiye kadar çok kullanmama eğilimindeyim.)

  • Varsayılan Terminal'i kullanıyorsanız, satırı hızlıca seçebilir ve doğrudan komut satırına yapıştırmak için orta tıklatabilirsiniz. (Diğer terminaller veya SSH uygulamalarının farklı yöntemleri olabilir.)

    Uygulamada, bunu "kazara" yapmak için yeterince hızlı ve biraz daha zor buluyorum ve herhangi bir ön kurulum gerektirmeden, bunu yapmak eğilimindeyim.

  • Bununla birlikte, sudo apt install packagenamedoğrudan yazmak için söylenecek bir şey vardır - hızlı bir şekilde yazabiliyorsanız (veya öğrenmek istiyorsanız) .

    Kas hafızanızı çalıştırmanıza yardımcı olur ve ayrıca paket adını okumanız ve yazmanız gerektiği anlamına gelir, yani gelecekte daha kolay hatırlayabileceğiniz anlamına gelir. Daha yeni Ubuntu sürümlerinde de biraz daha kolay, çünkü yerine aptçalışıyor apt-get.


1
Muhtemelen ~/.bashrcbunun yerine demek istedin ~/.bash_rc.
edwinksl

Teşekkürler, muhtemelen düşünüyordum .bash_profile.
mwfearnley
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.