你是不是刚接触 Linux 开发,看着别人在 Ubuntu 上跑 C# 程序心里痒痒?或者被老项目逼着用上古版本的 Ubuntu 13.10,结果卡在 Mono 安装这一步死活过不去?别慌,今儿咱们就来啃这块硬骨头——虽然这系统比你家猫年纪还大,但办法总比困难多!
先泼盆冷水:为啥要选 13.10? 说实话,现在连 Ubuntu 官方都不维护这版本了,软件仓库里的包估计都发霉了。可谁让咱有时候就得伺候这种”活化石”呢?可能是公司祖传项目必须用特定环境,或者是虚拟机里复现老 bug,总之今天的目标就一个:在这古董系统上把 Mono 给整利索!
开工前的三大准备 1️⃣ 换源!换源!换源!
原版软件源早就失效了,你得在终端敲这串救命符:
sudo sed -i ‘s/archive.ubuntu.com/old-releases.ubuntu.com/g’ /etc/apt/sources.list
接着再补条安全更新源:
echo “deb http://old-releases.ubuntu.com/ubuntu/ saucy-security main” | sudo tee -a /etc/apt/sources.list2️⃣ 系统补丁打到吐
先来波基础操作:
sudo apt-get update && sudo apt-get upgrade -y
这时候大概率会报错,别怕!把报错里缺失的依赖包名记下来,手动补装。比如常见缺 libssl1.0.0 这种,得去 pkgs.org 这类网站挖坟找安装包。3️⃣ 开发工具全家桶
编译必备的装备得配齐:
sudo apt-get install build-essential automake libtool gettext
注意这里可能会提示某些包版本冲突,遇到这种情况就得上aptitude命令玩依赖关系俄罗斯方块了。重头戏:编译 Mono 源码 这里有个坑得先填——直接 clone 最新版 Mono 源码铁定编译不过,咱们得找和 13.10 匹配的历史版本。经过实测,mono-3.2.8 这个版本相对稳妥。
具体操作流程:
bash wget https://download.mono-project.com/sources/mono/mono-3.2.8.tar.bz2 tar xvf mono-3.2.8.tar.bz2 cd mono-3.2.8 ./configure –prefix=/usr/local make -j4 # 这里数字根据你CPU核数来 sudo make install
这时候可能会遇到这两个经典报错:报错1:
“error: ‘X’ was not declared in this scope”
多半是 gcc 版本太高,得降级安装 gcc-4.8。操作时记得用update-alternatives切换编译器版本。报错2:
找不到 libpng12 之类的依赖
这时候要手动下载旧版 deb 包安装,推荐去 launchpad.net 的旧仓库里翻找。安装后的玄学操作 你以为 make install 完就万事大吉?Too young!这时候直接敲mono –version八成会给你摆臭脸。还得做这几件事:
手动更新动态库缓存:
sudo ldconfig /usr/local/lib把 Mono 路径塞进环境变量:
echo ‘export PATH=/usr/local/bin:$PATH’ >> ~/.bashrc
记得开新终端或者source ~/.bashrc验证安装时如果提示缺少 mcs,得单独编译安装 basic 和 mcs 组件,这步要回到源码目录重新跑 make
灵魂拷问环节
Q:为啥不直接用 apt-get install mono-complete?
A:问得好!原本确实该这样,但 13.10 的官方源里 mono 版本才 2.10.8,很多新特性都不支持。咱们编译安装就是为了用上 3.x 版本的核心功能。Q:虚拟机卡死在 make 过程怎么办?
A:这种情况建议给虚拟机分配至少 2GB 内存,swap 分区搞个 4GB。实在不行就在 make 命令后面加-j2降低编译并行度,虽然慢点但能保命。Q:装完发现 ASP.NET 跑不起来咋整?
A:这时候得祭出 XSP 服务器,不过记得要装老版本的 xsp 3.0.11,新版的可不伺候这老系统。折腾完这一大圈,你是不是觉得在古董系统上搞开发就像考古现场挖代码?说真的,现在但凡有条件都应该升级到 LTS 版本。不过话说回来,能把这事儿办成的,绝对算得上 Linux 界的拼图高手了——毕竟这操作相当于用竹简刻代码,用算盘跑程序啊!下次要是再遇到这种奇葩需求,记得先深吸一口气,然后…直接建议领导升级系统吧!
免责声明:网所有文字、图片、视频、音频等资料均来自互联网,不代表本站赞同其观点,内容仅提供用户参考,若因此产生任何纠纷,本站概不负责,如有侵权联系本站删除!邮箱:207985384@qq.com https://www.ainiseo.com/hosting/36471.html