1週間Linux *** 5.10.41-1-MANJARO x86_64 GNU/Linux
前にディストリビューションを更新しました。gccとgcc-libバージョンですが、同僚と協力する必要が11.1.0
ありますgcc 10.2.0
gcc-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と混同しないでください。
docker
manjaroでは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
/data
Z
podman ps -a
podman start --attach myfirstcontainer
ダウングレードできます以内にその勇気、外では何も触らないでください。ボリュームを使用すると、コンテナはコンパイルする必要があるソースファイルにアクセスできます。
distcc
コンテナ内で「サーバー」コンパイラを実行するのは非常に一般的です。機能するには、これを追加する必要があります。たとえば、コンパイラとして--publish 3632
使用するのではなく、開発コンピュータ(「一般」の万ジャロなど)から。gcc
distcc
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