Bash aktualisiert, aber seine Version ändert sich nicht

7

Ich arbeite an Ubuntu 14.04 und habe etwas gefunden, das ich nicht verstehen kann.

Ich führe die Befehle wie folgt aus:

apt update && apt list --upgradable

Ich habe festgestellt, dass dies bashin der Liste der aktualisierbaren Elemente enthalten ist.

Im Moment bash --versionsagt mir die Ausgabe von , dass die Version von Bash ist 4.3.11(1).

Dann mache ich apt upgrade.

Zu meiner Überraschung mache ich es noch bash --versioneinmal und die Ausgabe ändert sich überhaupt nicht. Die Version von bashist noch 4.3.11(1).

Ist das also normal? Einige Pakete können aktualisiert werden, während sich die Version nicht ändert.

Yves
quelle
5
Passiert dasselbe, nachdem Sie sich abgemeldet und erneut angemeldet haben?
Karel
@karel fragte, denn wenn Sie keine neue Bash-Instanz öffnen würden, würde die alte weiterhin ausgeführt und die alte Versionsnummer melden. Linux hält Dinge am Leben, auch wenn die zugrunde liegenden Dateien geändert werden (indem es am ursprünglichen Inode festhält und manchmal Dinge im Speicher behält). Ich sehe dies, wenn einer meiner Browser während der Ausführung ein Update erhält. Es meldet (und ist) immer noch die alte Version, bis ich sie schließe und wieder öffne.
Joe

Antworten:

13

Sie sollten auch die Paketversion überprüfen:

$  bash --version
GNU bash, version 4.4.12(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ apt-cache policy bash | head -n3
bash:
  Installed: 4.4-5ubuntu1~16.04.york0
  Candidate: 4.4-5ubuntu1~16.04.york0

Wie zu sehen ist, weisen die Zeichenfolgen für die Paket- und Bash-Version Unterschiede auf, da sie von verschiedenen Personen festgelegt werden. In Ihrem Fall kann es durchaus vorkommen, dass sich im Upstream nichts geändert hat und die Änderungen vollständig vom Paketbetreuer vorgenommen wurden. Sie bash --versionbleiben also unverändert, aber die Paketversion hat sich geändert.

muru
quelle