gcc降级后glib和gcc之间的分歧

gcc降级后glib和gcc之间的分歧

我一周前更新了我的发行Linux *** 5.10.41-1-MANJARO x86_64 GNU/Linuxgcc 和 gcc-lib版本11.1.0 但需要与其gcc 10.2.0同事一起工作gcc-libs 10.2.0

我降级gccglib根据这个指导

这没有问题,但其他事情会中断,比如火狐、铬等 它给出了以下错误

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 混淆。

现在,在 manjaro 上你可以使用dockerpodman;两者都做同样的事情:运行容器,它们本质上是“盒子里”的 Linux 系统,与系统的其他部分很好地隔离。podman稍微更现代,并且在没有 root 权限的情况下运行得更好,但支持与 docker 相同的命令和选项(如果可能的话)。

例如,安装 podman ( sudo pacman -S podman) 后,您可以运行

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

它将下载run曼扎罗图像,为您提供一个交互式 shell ( -it),将您所拥有的内容绑定/home/maxemilianv容器中可见的 olume /data(使用您自己的所有权Z)。您的容器在退出后仍然存在(检查podman ps -a),并且可以使用 再次启动podman start --attach myfirstcontainer

您可以进行降级之内那个容器,不要碰外面的任何东西。通过卷,你的容器可以访问你需要编译的源文件!

distcc在容器内运行“服务器”编译器是很常见的。您需要添加--publish 3632它才能工作,并且在您的开发机器(即您的“正常”manjaro)上,不要使用 例如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

相关内容