質問
この質問とそれを解決するためのさまざまな方法が含まれた答えがほぼ毎日私たちのコミュニケーションで何度も登場します。検索結果がここにリンクされていれば大歓迎です!あなたの質問にリンクされたコメントを残すと、あなたの質問は同じカテゴリに属するので、以下のリストに追加できると安全に想定できます。
- gccダウングレード後のglibとgccの間の不一致
- Fedora 39で特定のgccバージョンにダウングレードするには?
- Arch Linuxにgccコンパイラをインストールする方法は?
- Debian Bullseye: gcc-11.4.0 と依存関係のインストール
[gcc]
これは、クエリの品質の低下によって引き起こされる多くの問題の4つにすぎません。知識が豊富で、まずコミュニケーションができる読者/ユーザーは、ほとんどいつも私に何をすべきか尋ねるでしょう...」と思います」と言います。この質問と回答では、ハイブリッドコンパイラがすべてのLinuxをクラッシュさせる理由を説明しようとし、答えは問題を解決するために私が知っている最も簡単な方法を提供します。この方法は破損を引き起こしませんが、これによりわずかなオーバーヘッドが発生します。コミュニティでQ&Aを提供し、私のアプローチが気に入った場合は投票してください。
問題の説明
全長DR:ジャンプするコンパイラをダウングレードするとなぜ問題が発生するのですか?
私はさまざまな答えに以下の画像を2〜3回使用しました。サイズが大きいことがわかっているので、読者が望む場合は、別のタブで開き、ズームなどを行うことをお勧めします。
このリストからディストリビューションを見つけて読んでください。ディストリビューションに親ディストリビューションがあることがわかります。 「いいね!」「いいね!」「親ディストリビューション(タイムラインの一番左にあるディストリビューション)」を使用している読者は、次のように質問することを知っています。
私は一番左のものを使っていますが、その親はどこにいますか?
今、私たちは問題の核心に達します。たとえば、$X
私のタイトルを入力してみましょう$Y
(忍耐強い読者の皆さん、$Z
まもなく提供される予定です)。
$X = Fedora 39
$Y = 13.2.1-6.fc39
定義
- 配布(Wikipediaから引用):
Linuxディストリビューション(しばしばdistroと省略)は、Linuxカーネルを含むソフトウェアのコレクションで構成されるオペレーティングシステムであり、通常パッケージ管理システム。
- パッケージ管理システム(再引用):
パッケージマネージャまたはパッケージ管理システムは、コンピュータプログラムを一貫した方法でインストール、アップグレード、構成、および削除するプロセスを自動化するソフトウェアツールバーです。
これら2つの項目を理解すると、親の配布の質問に答えるのに役立ちますが、残念ながら別の質問があります。デプロイメント・マネージャーはどのようにデプロイメントを生成しますか?
A:カーネルを除くすべてのLinuxソフトウェアは、次の場所に保存されます。GNUソフトウェアFTPサイトソースコードアーカイブにあります。すべてのLinuxカーネルはソースコードアーカイブからダウンロードできます。Linuxカーネルのアーカイブ。つまり、すべてのディストリビューションは、親ディストリビューションを含む同じソースコードから始まります。
コンパイラをダウングレードするとなぜ問題が発生するのですか?
前の定義によると、ディストリビューションは関連ソフトウェアのグループまたはグループです。この関係は、デプロイメントリポジトリ(またはデプロイメントによって選択された別の名前)で表示できます。
新しいバージョン(私たちの場合$X
= Fedora 39)が利用可能になると、そのバージョンのリポジトリがロックされます。特にバージョンがロックされています。これは、そのリポジトリのすべてのパッケージがロックされることを意味します。時間凍結。一度凍っても変わりません。バージョンがサポートされている間だけ生き残ることができ、バージョンがアップグレードされると死にます。
GCCを構築するために必要なツールも凍結ストレージにあります。 ユーザーが固定リポジトリに付属のGCCをアップグレードまたはダウングレードしようとすると、成功するとバージョンロックが解除されます。。破損の発生を防ぐために、オペレーティング・システムのパッケージ・マネージャーは、このようなことが発生しないようにします。
私の答えを読んで、どうやって克服したのかをご覧ください。$Z
ベストアンサー1
あまり重い解決策はコンテナを使用することです。 Docker または Podman をインストールし、次の手順に従います。eyoung100さんの返信必要なディストリビューションを識別または検索します。参会学について。
同じFedora 36の例を使用してコンテナを実行します。
podman run -it fedora:36
-v
コンテナ内でシステムのディレクトリを使用できるようにするオプションを追加できます。
podman run -it -v ~/myproject:/myproject:z fedora:36
:z
(SELinuxを使用している場合にのみ追加されます。)
コンテナ内にgcc
必要な他のツールをインストールしてプロジェクトをビルドすると、共有ディレクトリ内のファイルを/myproject
見つけることができます。