[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Wie Programmversion feststellen?



Karin Gerbrich wrote:
> Wie stelle ich fest, welche Version ein Programm hat?

Das im Allgemeinen Fall ein schwieriges Unterfangen. Auch Tools
wie whatis koennen nicht hexen, aber in Zusammenarbeit mit einem
Paketsystem ist einiges machbar.

> Konkret gehts mir momentan um 'iptables'.

Konkrete Faelle sind immer einfach und es hat ja auch schon darauf ein
paar richtige Antworten gegeben.

> # whatis iptables
> schreibt mir zwar hin, was es ist, aber nicht in welcher Version es 
> installiert ist!

whatis ist ein sehr einfach gestricktes Tool. Es gibt schlicht die
"Ueberschrift" der manpage aus, kann also nur eine Teilmenge von "man".

> Ich kann mir vorstellen, dass es da sowas wie 'whereis' oder 

whereis ist schon ein maechtigeres Ding. Es sucht nach Binaries und Doku
in Standardpfaden die man eben sonst selber kennen muesste und einzeln
abklappern.

Fuer die Versionsnummer gibt es aber keine Unix Tradition wo die
hinzuschreiben waere. Deshalb ist es im Allgemeinen schwierig.

"dpkg -l iptables" funktioniert zufaellig, weil das Debian Paket
genauso heisst wie das Programm. Andernfalls muesste man zuerst den
Paketnamen ermitteln. Das hilft aber alles nicht wenn das Programm
nicht als Debianpaket installiert wurde sondern aus einem tgz
selbstgebaut ist.  Im Extremfall sind sogar mehrere Versionen desselben
Programms installiert: Keine Chance fuer Paketmanager. Natuerlich ist
das auch distributionsspezifisch bei anderen Distributionen geht das
dann zB mit rpm.

Wenn man weiss wie kann man auch das Programm selbst fragen. Ob die
Option dazu "-V" oder "--version" (sehr verbreitet in der GNU Ecke)
heisst oder ob man dazu irgendwelche Menues ("about") oeffnen muss
haengt aber ganz von der Phantasie der Programmierer ab.


Ein Beispiel (potato hat diese Version von ls):
$ dpkg -S /bin/ls
fileutils: /bin/ls
$ dpkg -l fileutils
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  fileutils      4.0l-8         GNU file management utilities.
$ ls --version
ls (GNU fileutils) 4.0l
Written by Richard Stallman and David MacKenzie.
[...]

Ein Tool das die Versionsnummer ermittelt waere also recht aufwendig
(Ausgabe von dpkg parsen oder selbst in den Paketdatenbanken kramen),
wenig zuverlaessig, und distributionsspezifisch. Mir ist ein solches
Tool nicht bekannt.

PS: Kann mir jemand sagen warum fileutils die Versionsnummer 4.0l (vier
punkt null ell) und nicht 4.01 (vier punkt null eins) hat? Meine woody
hat 4.1-10 ohne Buchstaben.

-- 
   /"\                               Jürgen Dollinger
   \ /     ASCII Ribbon Campaign     Uni Ulm
    X      Against HTML Mail         http://www.home.pages.de/~zeitnot/
   / \                               #include<stddisclaimer.h>


--
Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-request@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listmaster@lists.debian.org (engl)



Reply to: