GNU/Linux >> Linux の 問題 >  >> Linux

古いバージョンのBashをエミュレートすることは可能ですか?

以前のバージョンのBashをエミュレートすることは可能ですか(それは正しい言葉ですか?)

4.3.11を使用しています。スクリプトが以前のバージョンと互換性があるかどうか知りたいのですが、実際に以前のバージョンをインストールしたくありません。変更ログを調べて、以前のバージョンに欠けている、使用している機能を特定することはできますが、それは少し面倒なようです。代わりに、ある種の魔法のコマンドラインオプションまたはスクリプトコマンドを期待していました(おそらく、希望に満ちた考えです)。

承認された回答:

いいえ、bashは古いバージョンのbashをエミュレートできません。ただし、古いバージョンのbashを含むテスト環境をセットアップするのは非常に簡単です。

ライブラリの非互換性を解決することは言うまでもなく、各ソフトウェアパッケージを手動でインストールする必要がある場合、個々のソフトウェアの古いバージョンをインストールするのは面倒です。ただし、もっと簡単な解決策があります。古いディストリビューションをインストールする 。開発パッケージを含む一貫したソフトウェアセットを備えた古いディストリビューションをインストールすると、ハードディスク容量が約1ドルかかり、最初のセットアップには1時間かかる場合があります。

schrootパッケージを使用すると、通常のLinuxシステムと同じシステムで実行されている古い(または新しい!)Linuxディストリビューションを簡単にインストールできます。システムディレクトリが古いソフトウェアを指している環境(chroot)でプログラムを実行できるschrootセットアップを簡単に作成できますが、ホームディレクトリは通常の環境のものです。私はDebianベースのディストリビューションのガイドを書きました。この方法でDebianslink(bash 2.01.01を使用)に簡単に戻ることができます。

さまざまなUnixバリアント、さまざまなCPUアーキテクチャ、または非常に古いソフトウェアでテストする場合は、仮想マシンで他のOSを実行できます。 (RAM、ディスクスペース、CPU、およびメンテナンスの)オーバーヘッドはもう少しありますが、それでも非常に実行可能です。


Linux
  1. 組み込みコマンドをbashするためにstraceすることは可能ですか?

  2. Bashの完了が代替案を循環することは可能ですか?

  3. 古いバージョンの Bash で Bash スクリプトをテストするにはどうすればよいですか?

  1. jenkins パイプラインで bash コマンドを実行する

  2. ディレクトリを認識したbash履歴を持つことは可能ですか

  3. Trusty 上の LXC または Docker でコンテナ化された 10.04 または 12.04 またはそれ以前の LTS を実行することは可能ですか?

  1. Bashエクスポート変数

  2. Bash待機コマンド

  3. Bash while Loop