我一周前更新了我的发行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
/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 上你可以使用docker
或podman
;两者都做同样的事情:运行容器,它们本质上是“盒子里”的 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/maxemilian
为v
容器中可见的 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