前情介绍
趁着从服务器下载之前备份内容的这段时间,写一下这阶段安装系统和配置深度学习环境的踩坑路程。作为一周之内重装7次系统的我是懂得怎么把系统搞崩溃的,这不必须记录一下!!!
系统配置
1、系统
ubuntu20.04
2、硬件
dell precision tower7910,Intel® Xeon(R) CPU E5-2623 v3,NVIDIA Corporation GP102 [TITAN Xp],内存64G,2T硬盘
3、安装方式
u盘作为启动盘
背景说明
1、硬件本身的情况
首先说一下为什么会有这么多问题,最初的硬盘是格式化后的2T硬盘可能是格式有问题,总是出现读盘缓慢(最开始扫描磁盘3%、5%...跳的很慢),并且在创建系统的时候会一直卡着不动,卡很久之后蹦出创建系统ext4失败,这种现象很可能是硬盘本身有问题导致的,当然也不一定,比如我的那个2T硬盘放在另一台主机上就好使了,所以这种情况很可能是你的硬盘和主机不和,该分就分了吧。
2、自己不要太权限了
再说安装系统成功后,不要轻易的去执行sudo 命令,特别是不要轻易执行:
sudo rm -rf ****
更不要去文件目录下执行sudo rm -rf,这很危险!!!
踩坑实录
我最近的两次装机就是因为这个原因,因为没有图,所以在这里凭记忆回顾一下:
1、安装库依赖时候,子进程(subprogress)出问题了
在安装库依赖(以lib打头的一般都比较复杂)如build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev时候会告诉我子进程subprocess出了问题,涉及到了某个包版本或是依赖不对,于是我搜了很多内容:更新包、安装依赖等都没有解决,于是我做了一个大胆的尝试,从usr/local/bin或者是var/bin找到了这个包(这个具体在哪记不清了,如果哪天遇到了回来补更),然后rm -rf ***,好消息是不报错了,坏消息是新的错误又来了,这不就是程序员吗??
2、终端、vscode等无法打开
首先是我的终端就无法打开了,再试其他软件如vscode、pycharm等都无法正常打开,好在我的浏览器还是可以正常运行的,于是又浪费了一晚上!!!因为我可以花时间去修补犯下的错嘛。于是我就搜各种教程:apt update、remove、install等等,反正网上搜到的都试了试,都不行!!!我分析了一下原因:很可能是删除的这些包(对,你没有听错,不是一个包)对系统运行有直接影响,而且由于是直接在目录下删除的,可能只是某一个小块,系统apt无法发现并更新或者补全,所以就完了。可能还有一个原因是我把所有whereis能搜到的python路径都给删了,导致系统需要python的地方无法找到,因为我没有想到原来ubuntu系统是自带python相关的环境的,新装的系统可以通过
whereis python
查看到,有心的话可以盯一下安装过程,是可以发现python的。
3、导致这些的原因
3.1、安装库依赖
这个也是在安装一些和系统库相关的包,运行的指令为:
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
3.2、make安装
这个出现的问题是什么呢?是在创建Id1错误,不是id,是诶偶,搜了一下说是在创建链接库的时候发生了错误,应该是执行这条指令:
cmake ..
出现了错误,记得不太清了,只记得编译阶段进行到55%左右的时候报错,同时有一个错误1和一个错误2,艘了以下,大概是编译器找不到该库文件,没见过这种,那怎么办呢?就问了以下chatgpt3.5,首先给出的办法是让我用gcc来编译而不是cmake,于是我尝试了,但是还是会报同样的错误(顺便说一句,gcc的编译过程可真是慢!),然后我再次求助chatgpt3.5,很灵性,他让我先卸载一部分包然后在重装,按照理论来说是可行的,因为找不到库文件很可能就是安装的过程中把这些库文件中的某一个依赖给遗忘了,我只记得当时的卸载包中包括但不限于bgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev这些,也没仔细看,就直接执行了。
3.3、移除库包
sudo apt-get remove bgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev ****
后面的****代表没记清的一些包,但应该有libmutter、libgnome、libgrc等,侥幸有张图:
3.4、分析情况
这些都是和系统相关的,最关键的是把包管理工具apt也卸载了(果然,我卸我自己!!!!),于是后面那条指令:
sudo apt-get install ***
也就没办法执行了,但幸运的是,我浏览器还可以运行,于是又浪费了一整晚。
apt竟然被卸载了???
apt卸载之后再进行安装是很困难的事情,可以去官网下载apt包然后进行安装,再用apt去进行更新包状态以及升级相应的软件,但是有一个问题是,按照教程下载好之后开始安装又出现了新的问题,apt也需要依赖其他的文件,其中一个就是gnump好像是,因为没有记录了,所以无法准确拼写,ok,再去下载,下载好开始安装,结果这个包又依赖其他包(而且这个依赖有十多个),按照这进度下去,我估计要把整个系统的包都手动安一遍才能work了。最扯蛋的是我竟然无法在官网找到其中的依赖!!!
ok,格式化,回家,打游戏,第二天重装!
延伸阅读--什么是 sudo rm -rf?
当你刚接触 Linux 时,你会经常遇到这样的建议:永远不要运行 sudo rm -rf /
。在 Linux 世界里,更是围绕着 sudo rm -rf
有很多梗。
但似乎对于它也有一些混乱的认识。在 清理 Ubuntu 以腾出空间 的教程中,我建议运行一些涉及 sudo
和 rm -rf
的命令。一位读者问我,如果 sudo rm -rf
是一个不应该运行的危险的 Linux 命令,我为什么要建议这样做。
需要更多了解的可以查看上面这个卡片
完结撒花
严格要求自己,但是也要对自己宽容