GNU/Linux >> Znalost Linux >  >> Linux

Je možné emulovat starší verze Bash?

Je možné emulovat (je to správné slovo?) předchozí verze Bash?

Používám 4.3.11 a zajímalo by mě, jestli jsou moje skripty kompatibilní s některými staršími verzemi, ale ve skutečnosti nechci starší verzi instalovat. Mohl bych se prohrabat seznamy změn a zjistit, které funkce, které používám, chybí v předchozích verzích, ale zdá se mi to trochu zdlouhavé. Místo toho jsem doufal v nějakou magickou volbu příkazového řádku nebo příkaz skriptu (pravděpodobně zbožné přání).

Přijatá odpověď:

Ne, bash nemůže emulovat starší verze bash. Ale je docela snadné nastavit testovací prostředí, které obsahuje starší verzi bash.

Instalace starší verze jednotlivého softwaru je zdlouhavá, pokud musíte každý softwarový balík instalovat ručně, nemluvě o řešení nekompatibility knihoven. Existuje však jednodušší řešení:nainstalovat starší distribuci . Instalace starší distribuce s konzistentní sadou softwaru včetně vývojových balíčků stojí asi 1 dolar místa na pevném disku a možná hodinu prvního nastavení.

Balíček schroot usnadňuje instalaci starší (nebo novější!) distribuce Linuxu, která běží na stejném systému jako váš normální systém Linux. Můžete snadno vytvořit nastavení schroot, kde můžete spustit program v prostředí (chroot), kde systémové adresáře ukazují na starší software, ale domovské adresáře jsou ty z normálního prostředí. Napsal jsem průvodce pro distribuce založené na Debianu; tímto způsobem se můžete snadno vrátit k Debian slink (s bash 2.01.01).

Pokud chcete testovat s různými variantami Unixu, různými architekturami CPU nebo velmi starým softwarem, můžete na virtuálním stroji provozovat jiné OS. Je to trochu více režie (paměť RAM, místo na disku, CPU a údržba), ale stále je to velmi proveditelné.


Linux
  1. Je možné vysledovat Builtin Commands To Bash?

  2. Je možné, aby dokončování Bash procházelo alternativami?

  3. Je možné mít adresářovou historii bash

  1. Jak mohu otestovat svůj Bash skript na starších verzích Bash?

  2. Spusťte příkaz bash na jenkins pipeline

  3. Je možné provozovat LTS 10.04 nebo 12.04 nebo starší kontejnerovaný pod LXC nebo Docker na Trusty?

  1. Proměnná exportu Bash

  2. Bash čeká příkaz

  3. Bash, zatímco Loop