gccダウングレード後のglibとgccの間の不一致

gccダウングレード後のglibとgccの間の不一致

1週間Linux *** 5.10.41-1-MANJARO x86_64 GNU/Linux 前にディストリビューションを更新しました。gccとgcc-libバージョンですが、同僚と協力する必要が11.1.0 ありますgcc 10.2.0gcc-libs 10.2.0

ダウングレードgccしてglibこれに基づいていました。ガイド

これは問題ではありません。しかし、他のものは壊れるでしょう。Firefox、Chromeなど 次のエラーが発生します

firefox
/usr/lib/firefox/firefox: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib/firefox/firefox)

どのようにダウングレードできますか?湾岸協力協議会そして私の考えでは、同僚の図書館はグリップ舌

どう対処すべきかわかりません。グリップ舌

sudo downgrade glib-
glib-compile-resources  glib-genmarshal         glib-mkenums
glib-compile-schemas    glib-gettextize 

ダウングレードする必要がありますか?グリップ舌そのものはそれらでしょうか?

ベストアンサー1

お客様がリンクした文書には、次の内容が記載されています。

警告:パッケージをダウングレードすると、ほとんど常にサポートされていない部分アップグレード状態になります。このガイドラインは、パッケージのダウングレードの結果を理解する上級ユーザー向けです。

これがまさにここで起こるものです。これで、現在インストールされているソフトウェア(おそらくglibc以外のソフトウェア)と互換性のない依存関係があります。したがって、ロールバックする必要があります。

ABが言ったように:

最近では、ホストシステムでこれらの問題が発生しないように、古いソフトウェア(古いgccなど)を実行しているコンテナを起動するだけです。しかし、gcc-libs、glibc2、またはstdlibc ++をGLibと混同しないでください。

dockermanjaroではorを使用できるようになりましたpodman。どちらも同じことを行います。コンテナ、これらは本質的に「ボックス内の」Linuxシステムであり、残りのシステムとはよく分離されています。podmanやや現代的で、root権限なしでうまく動作しますが、dockerと同じコマンドとオプションをサポートしています(可能な場合)。

たとえば、podman( sudo pacman -S podman) をインストールした後、次を実行できます。

podman run --name myfirstcontainer -it  -v /home/maxemilian:/data:Z manjarolinux/base

それはダウンロードされrunていますmanzaro イメージ-it、あなたが所有しているものをコンテナに表示されるオリウム(自分の所有権を含む)/home/maxemilianにバインドするインタラクティブシェル()を提供します。コンテナはシャットダウン後も保持され(選択済み)、再起動できます。v/dataZpodman ps -apodman start --attach myfirstcontainer

ダウングレードできます以内にその勇気、外では何も触らないでください。ボリュームを使用すると、コンテナはコンパイルする必要があるソースファイルにアクセスできます。

distccコンテナ内で「サーバー」コンパイラを実行するのは非常に一般的です。機能するには、これを追加する必要があります。たとえば、コンパイラとして--publish 3632使用するのではなく、開発コンピュータ(「一般」の万ジャロなど)から。gccdistcc

podman run -it --publish 3632 --name buildserver manjarolinux/base # gcc インストール、distcc distccd --daemon

頑張る!ファイルの作成test.c:

#include <stdio.h>
int main() {
  printf("GCC %d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__);
  return 0;
}

走る

export CC=distcc
export DISTCC_HOSTS=localhost
$CC -o test test.c
./test

おすすめ記事