GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ist es möglich, ältere Versionen von Bash zu emulieren?

Ist es möglich (ist das das richtige Wort?) frühere Versionen von Bash zu emulieren?

Ich verwende 4.3.11 und möchte wissen, ob meine Skripts mit einigen früheren Versionen kompatibel sind, aber ich möchte keine frühere Version installieren. Ich könnte die Änderungsprotokolle durchsuchen und herausfinden, welche Funktionen ich verwende, die in früheren Versionen fehlen, aber das scheint ein bisschen langweilig zu sein. Ich hatte stattdessen auf eine Art magische Befehlszeilenoption oder einen Skriptbefehl gehofft (wahrscheinlich Wunschdenken).

Akzeptierte Antwort:

Nein, bash kann keine älteren Versionen von bash emulieren. Aber es ist ziemlich einfach, eine Testumgebung einzurichten, die eine ältere Version von bash enthält.

Das Installieren älterer Versionen individueller Software ist mühsam, wenn Sie jedes Softwarepaket manuell installieren müssen, ganz zu schweigen von der Lösung der Bibliotheksinkompatibilitäten. Aber es gibt eine einfachere Lösung:Installieren Sie eine ältere Distribution . Die Installation einer älteren Distribution mit konsistenter Software, einschließlich Entwicklungspaketen, kostet ungefähr 1 US-Dollar Festplattenspeicher und vielleicht eine Stunde für die erstmalige Einrichtung.

Das Schroot-Paket macht es einfach, eine ältere (oder neuere!) Linux-Distribution zu installieren, die auf demselben System wie Ihr normales Linux-System läuft. Sie können leicht ein Schroot-Setup erstellen, in dem Sie ein Programm in einer Umgebung (einer Chroot) ausführen können, in der die Systemverzeichnisse auf die ältere Software verweisen, die Home-Verzeichnisse jedoch die der normalen Umgebung sind. Ich habe eine Anleitung für Debian-basierte Distributionen geschrieben; Sie können auf diese Weise leicht zu Debian Slink (mit Bash 2.01.01) zurückkehren.

Wenn Sie mit verschiedenen Unix-Varianten, verschiedenen CPU-Architekturen oder sehr, sehr alter Software testen möchten, können Sie andere Betriebssysteme in einer virtuellen Maschine ausführen. Es gibt ein wenig mehr Overhead (in RAM, Speicherplatz, CPU und Wartung), aber es ist immer noch sehr gut machbar.


Linux
  1. Ist es möglich, die eingebauten Befehle zu Bash zu verfolgen?

  2. Ist es möglich, dass die Bash-Vervollständigung die Alternativen durchläuft?

  3. Führen Sie den Bash-Befehl auf der Jenkins-Pipeline aus

  4. Ist es möglich, einen verzeichnisbewussten Bash-Verlauf zu haben?

  5. Ist es möglich, ein 10.04 oder 12.04 oder früheres LTS containerisiert unter LXC oder Docker auf Trusty auszuführen?

Bash-Arrays

Bash Shebang

Bash-printf-Befehl

So aktualisieren Sie von älteren Versionen auf Fedora 32 Workstation

Assoziatives Array in Bash

So entfernen Sie ältere Linux-Kernel-Versionen in Ubuntu