Yerine sudo apt-get remove ^k3b
kullanı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 apt
ve apt-get
bunu 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
k3
b
b*
b
Eğer çalıştırdığınızda apt
veya apt-get
birlikte install
, remove
ya da purge
eylem, 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 apt
ve apt-get
argü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-get
veya apt
bir 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
, remove
ya purge
içinde eylemler apt
veya 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 ^virtualbox
paket 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
.