有没有简单的方法可以在 Oneiric 上安装 gcc-4.3?我真的需要它,因为 matlab 依赖 i 来创建 mex 文件
我尝试将所有资源库改回 Maverick 只是为了安装 gcc-4.3,但出现此错误:
refl_v0p8_linux_and_windows % sudo apt-get install gcc-4.3-multilib libstdc++6-4.3- dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
gcc-4.3-multilib : Depends: gcc-4.3 (= 4.3.5-3ubuntu1) but it is not going to be installed
Depends: libc6-dev-i386 (>= 2.5) but it is not going to be installed
libstdc++6-4.3-dev : Depends: g++-4.3 (= 4.3.5-3ubuntu1) but it is not going to be installed
E: Broken packages
答案1
1)编辑sources.list文件:
sudo gedit /etc/apt/sources.list
添加此行:
deb http://mirror.pnl.gov/ubuntu/ hardy-updates main universe
保存并关闭文件
2)注销登录
3) 打开 Synaptic。如果你没有mirror.pnl.gov/ubuntu/ hardy-updates main universe
在左侧的源列表中看到,请点击重新加载。
4)mirror.pnl.gov/ubuntu/ hardy-updates main universe
从左栏中选择-这将显示包列表。
5)从列表中选择g77,标记为安装并应用。g77现已安装并可供使用。
答案2
绝对没有必要使用 gcc-4.3。当然,在创建 mex 文件时,您总会收到警告消息:
警告:您正在使用 gcc 版本“4.6.xx)”。MEX 当前支持的版本是“4.3.4”。有关当前支持的编译器列表,请参阅:http://www.mathworks.com/support/compilers/current_release/
但这是一个警告——MEX 函数仍然会编译!!!
唯一需要改变的是 libc.so.6 库上的新链接:(参见http://morganbye.net/blog/2011/10/matlab-ubuntu-1110)
因此对于 64 位:删除旧链接
sudo rm /lib64/libc.so.6
(删除旧链接时要小心。它对于 Linux 启动至关重要。因此,如果您在用新版本替换链接之前重新启动,那么就该挖出一个活动磁盘了。如果您比较谨慎,那么您可以先将“cp”libc.so.6 复制到 libc.so.6.backup 之类的东西。)
用新链接替换
sudo ln -s /lib/x86_64-linux-gnu/libc-2.13.so /lib64/libc.so.6
对于 32 位:(我没有测试过,因为我只运行 x64 系统,但从评论来看我认为它应该可以工作)
删除旧链接(再次小心使用此命令)
sudo rm /lib32/libc.so.6
用新链接替换
sudo ln -s /lib/i386-linux-gnu/libc-2.13.so /lib/libc.so.6
当然,如果这是全新安装的 Ubuntu,那么您可能不需要 rm(删除)命令。
答案3
您的依赖关系已损坏。您可以“修复”它们
sudo apt-get -f install
但在说“是”之前,请先看一下 apt 尝试卸载什么。
提示:降级 ubuntu 版本只是为了获得另一个版本的 gcc 不是一个好主意。一台机器上可以有多个版本的 gcc!我会再次回到您降级失败之前的版本,并保留您之前的 gcc 版本。然后获取 gcc 4.3 的 tar-ball 并自行编译,这并不难。之后您有两个 gcc 版本,然后您可以将 matlab 指向另一个版本(在 matlab 中的某个位置指定 gcc 路径)。
不建议您使用 ubuntu 中默认安装的 gcc 版本以外的其他版本来编译其他软件。
答案4
我知道这个问题已经两年了,但我不喜欢看到从未得到接受答案的问题,所以我尽力提供帮助。
这不使用包管理器,而是http://gcc-uk.internet.bs/releases/您可以找到几乎所有版本的 GCC。版本 4.3.0(可能还有所有其他版本)都包含 HTML 安装说明。如果您不喜欢英国服务器,GCC 网站上有一个镜像列表;其中一些可能有旧版本,就像这个一样。
我不同意 Michal Kvasnicka 的观点,你应该始终使用指定版本的 GCC。