记一次Ubuntu装机经验

起因是工作站到了,需要安装开发环境,原本很简单的事情,没想到前前后后竟然拖了近一周。

开发环境是Ubuntu,故首先考虑安装20.04,安装顺利,但代码编译时,提示Python版本不兼容,提示了很多错误。

这才知道需要编译的代码,因为一些原因必须使用Python3.6.9

期间不是没用考虑过直接安装18.04,但工作站的显卡比较新,在进入安装界面后,电脑黑屏,没办法进一步安装。

查了些资料,思量了下,试了下面几个方案。(熟练工可能里面就会想到Pyenv之类,奈何Python不怎么熟悉。)

方案一:第三方源安装Python3.6+update-alternatives配置

印象中默认安装的版本是python3.6.15,一方面这不是我想要的版本。同时解决不了/usr/bin/python3连接的版本仍然是Python3.8的问题。

因为20.04默认Python为3.8,通过通过 ln -sf修改,但仍然在编译的时候会导致其他问题。

放弃。

方案二:卸载自带的Python3.8+源码编译Python3.6.9

这个是最不可取的方法,卸载系统默认的Python3.8,会有一系列的问题。虽然有办法打补丁,但不美观。

最后在修复这些一系列问题的时候,耗费了心力,怒弃之。

上述的两个思路,在这篇文章都提到了,细节可以再查阅其他资料。

在Ubuntu 20.04 LTS 上安装 Python 3.9(翻译) - muzing的杂货铺

方案三:virtualenv(Pyenv)

这个方案其实可以解决Python版本的问题,但吹毛求疵的毛病犯了,比如virtualenv每次执行相关命令,终端需要先active虚拟环境。

Pyenv草草实验了一下,好像也没生效,Python用的不多,对这种可能大多数Pythoer来说很简单的东西,对我来说太烦了。

这几个方案尝试下来,也花了不少精力,原本想妥协采用这个方案。

但是,

编译没问题了,运行的时候,启动模拟器失败。以为仍然是Python的问题,看看折腾了好几个小时,也没成效,再怒弃之。

这之后,其实也遇到了同样的问题,分析了下,其实是代码不稳定导致,然则,我已转向18.04怀抱。

周末,决定把电脑带回家,安心盘它。

考虑的方案是,将18.04的iso内核升级到20.04的版本,这样应该就解决了黑屏的问题,毕竟20.04可以直接亮起屏幕。

再加上18.04的Python的版本默认也是3.6.9。想想简直完美。

如果还是不行,就走上面的第三个方案。

那么摆在面前的问题就是:

1. 修改Ubuntu的iso文件,参考使用Cubic自制Ubuntu发行版 - (jianshu.com)

2. 如何替换Ubuntu内核,参考ubuntu18.04 升级linux kernel的几种方式_musiclvme的专栏-CSDN博客_ubuntu升级kernel,直接在Cubic内执行,则完成了iso的定制。

所幸,安装顺利。

题外话,替换内核之前,尝试了保留18.04内核,仅替换显卡的驱动的方案。

希望让修改再小些,但实验了几轮后,没解决黑屏的问题,也就放弃了。但发现了个可以下载各类包的网站:https://pkgs.org/,感觉不错。

这里面涉及到的点是,安装Nvidia显卡驱动,网上的文章很多,我其实没详细验证,可以自行搜索。

我实验的方案是,在18.04里面安装nouveau的驱动以及直接更新Nvidia 470的包。

对于Ubuntu下的Nvidia驱动,我还是情愿走系统界面的驱动更新。

本以为到此可以结束了,一切都那么完美,下代码,编译不见红,在启动的时候提示工程里的virtualbox版本太低,而这个版本在当前内核5.11下不支持。

查阅了virtualboxChapter 15. Change Log (virtualbox.org),的确如此。

这样要么升级virtualbox版本,要么降级与切换内核版本ubuntu如何进行切换内核版本全教程_Thanours的博客-CSDN博客_ubuntu切换内核版本。

成年人不做选择题,我都尝试了,又是耗费心力的过程。

最后,查了下显卡的生产日期,选了个靠近的内核版本,没有升级virtualbox版本也可以正常启动。

当然,折腾到这步,我也试了下,升级virtualbox版本,发现也能正常运行。

但是通过apt install安装的版本较新,工程里的代码支持不是很好,也会报错。

手动安装,Index of http://download.virtualbox.org/virtualbox,注意下载对应Ubuntu版本的安装包。

剩下的就是一些杂鱼了:

• 直接使用了Ubuntu系统自带的“Startup Disk Creator”制作了启动U盘后,想通过UI界面的格式化操作,始终失败。

  用mkfs命令格式化U盘 - (jianshu.com)

• 解决类似umount target is busy挂载盘卸载不掉问题 - Adrian·Ding - 博客园 (cnblogs.com)

• 解决Linux系统笔记本合盖黑屏与休眠的问题 - (jianshu.com)

• Ubuntu18.04安装后检测不到集成声卡问题_zgq_HIT的博客-CSDN博客_ubuntu识别不到声卡

小结一下未来可能让不经意间装X的几条命令:

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 --> 软件多版本管理

sudo ln -sf /usr/bin/python3.8 /usr/bin/python3 --> 强制更改软件定向

grep menuentry /boot/grub/grub.cfg --> 查看内核启动顺序

cat /proc/asound/cards --> 查看声卡信息

sudo mkfs.ntfs -F /dev/sdf -I --> 格式化分区

你可能感兴趣的:(记一次Ubuntu装机经验)