it-swarm-ja.com

apt-getを使用してGCCを古いバージョンにダウングレードします

特定の理由により、apt-getを使用してGCCをバージョン2.xにダウングレードする必要があります(ソースをダウンロードしてコンパイルするのではありません)。

それは可能ですか?はいの場合、リポジトリアドレスを見つけてapt-get経由でインストールするにはどうすればよいですか?

前もって感謝します。

1

すべての実用的な意図と目的のために、あなたが求めていることは不可能であり、次のいくつかの段落では、理由の説明といくつかの潜在的な回避策があります。

Gcc、glibc、Linuxカーネル、およびその他のさまざまなシステムライブラリは、FreeBSD ir OpenBSDの場合ほど緊密に結合されていませんが、並行して進化しています。 gcc 2.95のサポートの最後のホールドアウトは、2005年にカーネルでのサポートから外れたため、コアシステムライブラリでもサポートされています。

2.xバージョンのgccを最新のシステムにインストールするだけでも、すべての依存関係があるため、重大なハードルになります。これは、Linuxコミュニティがずっと前に移行した古いバージョンのシステムライブラリに依存し、次のような状況を生み出します。ソースからインストールする場合でも「依存関係地獄」であり、パッケージからインストールしようとすることはほとんどありません。依存関係だけで、Linuxディストリビューションの数十世代以上をサポートされなくなったバージョンにダウングレードする必要があります。また、ひどく安全ではありません。

Gccをインストールした後も、アプリケーションをコンパイルするという問題が残ります。システムライブラリはgccと同じかそれ以上に変更されているため、このプロセスを何十回もやり直す必要があります。おそらく他の何百もの依存関係。もちろん、これらの依存関係はすべて、システムの他の場所ですでに使用されており、適切なバージョンをインストールするための適切な方法がありません。

すべての要素が再び機能する可能性が生じる前に、おそらく数千時間、場合によっては数十万時間の作業を見ているでしょう。その過程で、システムが非常に保守不可能で不安定なものに変化し、システムの再起動は盲目的な演習であり、10年以上の深刻なセキュリティの脆弱性をシステムに再導入することになります。

回避策

しかし、すべての希望が失われることはありません。短期的なソリューションは、chrootまたは仮想化です。 https://stackoverflow.com/questions/8176798/installing-gcc-2-95-3-in-ubuntu-10-04- からの回答の1つは、DebianEtchがgcc2.95をサポートした最後のディストリビューション。 DebianEtchまたは仮想マシンのchrootを構築できるはずです。このディストリビューションは2010年に最後にセキュリティサポートを受けたため、4年分の累積セキュリティ脆弱性を引き続き確認できます。

これに必要な古いバージョンのDebianは、現時点ではまったく保守されていないため、 https://archive.debian.org/debian にのみあります。

debootstrap( https://wiki.debian.org/Debootstrap )はまだetchをインストールできるようで、動作するchrootを構築することができ、その中で古いものをコンパイルして実行することができますソフトウェア。

セキュリティへの影響を考えると、長期的な解決策は、現在サポートされている最新のディストリビューションでコンパイルするようにコードをできるだけ早く更新することです。問題のソフトウェアが、古いバージョンのプログラムからのデータの回復など、1回限りの目的で使用されていない限り、これは絶対に重要です。

この移植プロセスを管理しやすくするための実行可能な解決策は、最新のUbuntuリリースのコードを最終的に更新する前に、徐々に前進し、前進し、介在する各Debianリリースのコンパイルの問題を修正することです。 DebianのリリースサイクルはUbuntuよりもはるかに長く、上位互換性も十分にあるため、これは乗り越えられない作業ではなく、gcc2.xを最新のUbuntuに移植するよりもほぼ確実に実行可能です。

編集:Etchは、実際には多くの移植作業に最適です。2.95から4.1までのバージョンのgccをサポートしているため、古いコードを小さなステップで更新できます。

1
Stephanie