Ubuntu'da yazılımın sürümünü edinmek için -v ve -V arasındaki farklar nelerdir?


1

Ubuntu'da kurulu olan yazılımın sürümünü almak için her zaman kafam karıştı. Tam yazmasıyla önlemek için böyle sürümü almak için <software> --versionyerine hep gibi bir şey kullanmak <software> -V.

Ancak sorun şu ki, çalıştığı tüm yazılımlar için değil. Bazıları için kullanıyorum <software> -v, bazıları --versioniçin ise tam sürümünü kullanıyorum.

Örneğin

wget, gedit, nano, mysql vs. hepsi -V (Capital V) ile çalışır.

ancak Php , Skype ve diğerleri -V ile hiç çalışmamış olabilirler , bunun yerine -v (küçük v) sürümünü kullanmak için kullandım :

php -V
Usage: php [options] [-f] <file> [--] [args...]
   php [options] -r <code> [--] [args...]
   php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
   php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
   ...

php -v
PHP 5.3.10-1ubuntu3.9 with Suhosin-Patch (cli) (built: Dec 12 2013 04:27:25) 
...

Her iki Bazı çalışmalar -v ve -V gibi firefox . Hatta bazıları tov , şarap ve google-krom gibi -v veya -V ile çalışmaz .

  • Neden bu kadar fark var?
  • -V yazılım sürümünü almak için her zaman tercih edildiğinden, neden bir standart yoktur? veya bilmediğim bir standart var mı?

Yanıtlar:


1

Sistem yüklü yazılımın sürümünü edinmenin doğru yolu paket yöneticisi araçlarınızı kullanmaktır!

--version çeşitli nedenlerle, bunu yapmak için güvenilir bir yol değildir:

  • Tüm programların çalıştırılabilir dosyaları yoktur. Kütüphaneler güzel bir örnek. linux --versionBöyle bir komut olmadığı için çekirdek sürümünüzü kontrol edemezsiniz . Veya video sürücüsü versiyonunuz.

  • Tüm yürütülebilir dosyalar komut satırı argümanlarına sahip değildir. Çoğu, ancak GUI programlarına gerek duymaz, bazıları ise gerekmez.

  • --version, herhangi bir komut satırı argümanı olarak, uygulamaya bağlıdır. Geliştiricinin uygulamayı gerçekleştirmesine bağlıdır ve başlı başına bir "standart", sadece bir sözleşme yoktur. Fark ettiğiniz -v|-Vgibi, tutarlı değil. Hatta --helpevrensel değildir.

  • Biçim çıktısı --versionda tutarlı değil. Bazıları tek satır yazdırır, bazıları birkaç yazdırır. Bazıları yalnızca sürüm numarasını , bazıları da program adını yazdırır.

Oradaki söyledi olan standart, yüklü sürümünü almak için tutarlı bir yol herhangi : Sisteminizde yazılımın sormak sistemi değil, tasarim!

Debian mirası sayesinde, Ubuntu adında güçlü bir paket yönetim sistemine sahiptir apt(aslında, dpkg). Kurulu paketleri, bağımlılıklarını, kullanılabilir depoları ve sürümleri kontrol eder .

Yüklü paketlerinizi sorgulamak için kullanabileceğiniz birkaç paket yönetimi aracı ve ön uç vardır. İşte sürümü görüntüleyenler:

  • apt-cache policy <package>

  • dpkg --list <package> (joker karakterler kullanabilirsiniz!)

Ve verilen bir komutun hangi pakete ait olduğunu bilmiyorsanız, birkaç yolla öğrenebilirsiniz:

  • apt-cache search '<name>'

  • apt-file search '<path>'

Ve çıktı her zaman tutarlı, güvenilir, standart, çünkü farklı geliştiriciler tarafından yapılan yazılımları sormuyorsunuz, sisteminizi durumu hakkında sorgulıyorsunuz.

Örnek olarak, burada bahsettiğiniz tüm komutların tek bir çıktıda aranmasının sonucu :

$ dpkg --list wget gedit nano mysql-server skype php? firefox totem wine google-chrome*
İstenilen = Bilinmeyen / Yükle / Kaldır / Tahliye / Tut
| Durum = / Kurumlar / Konf-files / Ambalajsız / yarım-conf / Yarım inst / trig-beklemektedir / Trigonometri-pend
| / Err? = (Yok) / Reinst-zorunlu (Durum, Err: büyük harf = kötü)
|| / Adı Sürüm Açıklaması
+++ - ========================== - =================== ======= - ========================================== ==========================
ii firefox 42.0 + build2-0ubuntu0.12.04 Mozilla'dan güvenli ve kolay bir web tarayıcısı
ii gedit 3.4.1-0ubuntu1 GNOME masaüstü ortamının resmi metin editörü
ii google-chrome-stable 46.0.2490.80-1 Google’dan gelen web tarayıcısı
ii mysql-server 5.5.46-0ubuntu0.12.04.2 MySQL veritabanı sunucusu (en son sürüme bağlı olarak meta paket)
ii nano 2.2.6-1 Pico'dan ilham alan küçük, samimi metin editörü
ii php5 5.3.10-1ubuntu3.21 sunucu tarafı, HTML'ye gömülü kodlama dili (metapaket)
ii skype 4.3.0.37-0ubuntu0.12.04.1 Skype VOIP ve anında mesajlaşma servisi için müşteri
ii totem 3.0.1-0ubuntu21.1 GStreamer tabanlı GNOME masaüstü için basit medya oynatıcı
ii wget 1.13.4-2ubuntu1.2 web'den dosya alır
ii wine 1.4-0ubuntu4.1 Microsoft Windows Uyumluluk Katmanı (meta-paket)

Kabul edildi .. Sisteme sorun, yazılımı değil!
Saurav Kumar

1

Bunlar, her bir uygulama ile ilgili ayrıntılı seçeneklerdir, bu nedenle bazı uygulamalar -V diğerleri tarafından kullanılır- diğerleri hem de veya sadece - sürümlerini kullanır. Kongre isimlendirmek için genel bir kural yoktur.

Söylemek istediğim, bu seçeneklerin bir standarda sahip olmadığı, yani bazı uygulamalarda -X seçeneğini diğer uygulamalarda -R ile aynı bulabilirsiniz ...


Bu soruyu cevaplamak için verilen süre için +1 . Ama beni en çok tatmin eden cevap Radu Rădeanu'dan geldi ve siz de buna katılıyorsunuz. :)
Saurav Kumar

1

Standart:

app --version

-vya -Vda sadece (genellikle konuşmayan) kısaltılmış şeklidir --version. Bir adam sayfasında asla böyle bir şey göremezsiniz:

-v
    Print version...

veya:

-V
    Print version...

ancak bu iki seçeneğin, kısaltılmış formun (eğer varsa) ve standart formun her zaman birlikte olduğunu göreceksiniz. Gibi bir şey:

-v, --version
    Print version...

veya:

-V, --version
    Print version...

Ancak bu, yalnızca geliştiricilere uygulamalarını nasıl uygulamak istediklerini bağlıdır . Örneğin -v, bazı durumlarda --verbose(bkz. man wget) Veya --invert-match(bkz man grep) ao için kısaltılmış form olarak veya diğer durumlarda tek başına (bkz. man awkVeya man ps) kısaltılmıştır .


Her zaman cevabınızdan memnunum .. Teşekkürler :)
Saurav Kumar

0

Genellikle "ayrıntı" olarak adlandırılan bir seçenek nedeniyle ortaya çıkar. Ayrıntı bir program çalıştırır ve çağrıldığı terminale mümkün olduğunca çok bilgi yazdırır.

Bununla birlikte, bazı programlar ayrıntılı modları desteklememektedir veya herhangi bir ayrıntılı ayrıntı gerektirecek şekilde çalışmamaktadır, bu nedenle yardım dizesini tükürecektir. Diğerleri -v ve -V'ye eşit davranırlar.

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.