Yerine sudo apt-get remove ^k3bkullanın. Paketleri kurarken veya kaldırırken *, çoğu zaman tehlikelidir ve nadiren gereklidir. Eğer kullanımını yaparsanız *, bunu anlatmalısın, ama bu yok değil onun eğilim Yol sonucudur niyetinde çok daha fazla paket seçmek için, çünkü daha güvenli hale getirmek aptve apt-getbunu yorumlamak ve olmayan bir etkiye yol adı genişleme .
- Hatta güvenli kullanımları
* vardır genellikle gereksiz .
- Güvenli olmayan kullanımlar acımasızdır . Çıkarma , adında herhangi bir yerde bulunan her paketi (ve böyle bir pakete bağlı olan
k3b*her paketi) kaldırır . Bu bir yazım hatası içermeyen - yeterli olmasa bile, yeterlidir , çünkü "sıfır veya daha fazla s " anlamına gelir .k3 k3bb*b
Eğer çalıştırdığınızda aptveya apt-getbirlikte install, removeya da purgeeylem, sonraki her argüman ilk 1 bireysel paketin adı olarak yorumlanır. Bu adı taşıyan bir paket varsa, bunun için eylem gerçekleştirilir.
Orada böyle bir pakettir, varsa aptve apt-getargüman ortak birini içeriyorsa kontrol edecek düzenli ifade metakarakterleriyle 2 . , ?, +,* , |, \[, ^, veya$ . Değilse, yapılır - hiçbir paket bulunamadı.
O takdirde gelmez bu karakterlerden birini içermediğinden, o zaman bir düzenli ifade olarak ele alınır ve karşılaştırıldıkça herhangi bir bölümünü herhangi bir paket adının. Bütün isimle eşleşmek zorunda değil. Diğerlerinin dediği gibi, *düzenli ifadelerde, *glob ile aynı anlama gelmez . ?ya da değil. Düzenli bir ifadede:
*bir önceki öğenin tam olarak bir kez değil, yalnızca bir kez veya hiç olmaması gibi birçok kez görünmesine izin verir .
?önceki öğeyi isteğe bağlı yapar - bu , sıfır veya bir kez görünmesini sağlar.
apt-get (8) ( man apt-get) diyor ki:
Hiçbir ifade verilen ifadeyle eşleşmiyorsa ve ifade '.', '?' İfadelerinden birini içeriyorsa veya '*' sonra POSIX düzenli ifadesi olduğu varsayılır ve veritabanındaki tüm paket adlarına uygulanır. Herhangi bir eşleşme daha sonra kurulur (veya kaldırılır). Eşleştirmenin 'lo. *', 'how-lo' ve 'en düşük' değerleriyle eşleştiğini unutmayın. İstenmiyorsa, normal ifadeyi '^' veya '$' karakteriyle tutturun veya daha özel bir düzenli ifade oluşturun.
Manpage sadece söz ., ?ve *ancak bu eksik olarak +, |, [, ^, ve $ayrıca izin için yeterli olan apt-getveya aptbir normal ifade olarak desen yorumlar. 3
Eğer herhangi bir karakter herhangi bir sayıda maç rağmen .*- değil sadece *o görünecek sorun olmaz yalnızca bu ihtiyaç ortadan düzenli ifadenin. Desen, bir paket adının herhangi bir alt dize ile eşleştirildiği için, desenin sonunda (veya başında) anlamsızdır.
Manpage ^ve$ . Bunlar (özellikle ^) ile kullanılmak üzere güvenli, verimli desenleri yazma anahtarıdır install, removeya purgeiçinde eylemler aptveya apt-get.
^Tüm dizenin başına düzenli bir ifade tutturur . ^k3bİsimleri bütün paketleri seçer başlatmak ile k3b.
$Dize sonuna kadar düzenli bir ifade tutturur . k3b$İsimleri bütün paketleri seçecek sona ile k3b.
Bu nedenle, paketleri güvenle kaldırmak için bu komutu kullanabilirsiniz:
sudo apt-get remove ^k3b
Son olarak, bahsettiğiniz özel durumda, her iki adı da kendiniz de iletebilirsiniz:
sudo apt-get remove k3b k3b-data
O zaman tüm bu karmaşıklığı önlemek! (Buna alışınca bir ^kere bağlantı yapmak basit olsa da.) Veya kabuğunuzun yukarıdaki komuta genişlediği ayraç genişletmesini kullanın:
sudo apt-get remove k3b{,-data}
1 iki istisnası Buna vardır: (a) bazı seçenekler (örneğin -f, --purge) edilmesiyle, ve (b) ' de görünen bazı noktalama karakterleri sonuna aksi olabilir eylemi gerçekleştirmek için bir paket adıyla alınacaktı bir argüman ne yapıldığını değiştirmek için kullanılır (örneğin, paket yerine görevisudo apt install ubuntu-desktop^ yükler ve sonunda göründüğünde).^
2 Diğer düzenli ifade meta karakterleri var. Örneğin, \düzenli ifadelerin tüm lehçeleri tarafından desteklenir ve yaygın olarak kullanılır. ., ?, +, *, |, [, ^, Ve $sadece APT geliştiriciler normal ifade olarak yorumlanmasını tetikleyecek karar meta olarak gerçekleşmesi (adında tam bir paket olarak vereceği karar sonrasında başarısız).
3 Bunu doğrulamanın en kolay yolu -s, yukarıda açıklanan seçeneği kullanarak böyle bir desenle kurulum veya sökmeyi simüle etmektir . Örneğin, çalıştırma apt -s install ^virtualbox, sudo apt install ^virtualboxpaket yöneticisinin adı kiminle başladığını bildiği her paketi yükleme girişiminde bulunma etkisinin olacağını gösterir virtualbox. Ancak, bu davranış kaynak kodunu inceleyerek de doğrulanabilir . CacheSetHelper::PackageFromRegExİşlevini kontrol et cacheset.cc.