最近发现我linux系统中的/dev/root目录利用率占用了100%,这对后面文件的操作带来了一些麻烦。
1 查找真凶(什么文件占用了那么多的存储空间)
从图中发现,/dev/root占用率太高了,到底是什么占了这么大的空间
然后查看命令
# 进入根目录
cd /
在根目录下执行
du -h -x --max-depth=1
结果显示root目录占用了2.4个G
然后继续进入root目录,发现是我的conda安装占用了2.2个G
由于我的/userdata目录下面空间很多,接下来我想将/root/archiconda3移到/userdata/archiconda3目录下面。
是不是直接mv移动/userdata目录下面就可以了呢。答案肯定不是的。
这边其实有同学可能就问,你当时安装conda的时候就不知道修改一下路径吗,省的后面还要改啊改,安装conda的时候系统默认就是/root/archiconda3下面,当时没有考虑那么多,没有选择一个充足的空间,因为最近我在conda下面创建了虚拟环境,然后又在虚拟环境下面安装了许多相关python包,才发现空间不多了。
好了言归正传,接下来实战:
2 实战演示(温馨提示一下 最好修改文件之前 备份一下相关文件)
首先移动conda安装路径,命令如下
mv /root/archiconda3/ /userdata/archiconda3
接下来执行一下conda -V命令,
发现报错了
-bash: /root/archiconda3/bin/conda: No such file or directory
这时候你是否想起一个我们在安装conda的时候,提示我们是否将环境变量写入到~/.bashrc,好,由于路径变了,接下来我们相应修改一下其对应的环境变量。
修改前的~/.bashrc
好,我接下来将其中涉及到的/root/archiconda3都替换成/userdata/archiconda3,
修改后的~/.bashrc
修改好后,为了让它生效,执行一下
source ~/.bashrc
执行source ~/.bashrc发现报错了
-bash: /root/archiconda3/bin/conda: No such file or directory
怎么还是报这个错呢?我刚才不是改了吗?不用慌,其实你还要修改好一些配置文件,注意我们下图中这个文件conda.sh,里面涉及到conda相关的信息。
执行命令
cat /userdata/archiconda3/etc/profile.d/conda.sh
进入该文件中,你发现里面conda仍然绑定是之前安装的conda路径,所以我们也要改一下
修改前conda.sh的截图
修改conda.sh的前两行
修改前conda.sh
_CONDA_EXE="/root/archiconda3/bin/conda"
_CONDA_ROOT="/root/archiconda3"
修改后conda.sh
_CONDA_EXE="/userdata/archiconda3/bin/conda"
_CONDA_ROOT="/userdata/archiconda3"
修改好后,我们执行一下之前没有成功的命令
source ~/.bashrc
发现又报错了
-bash: /userdata/archiconda3/bin/conda: /root/archiconda3/bin/python: bad interpreter: No such file or directory
不过这次报错的原因和上次不一样了,为什么报错呢。这是因为移动位置或者修改conda所在的文件名称后就会出现用不起来的问题,因为conda命令都是按照安装时候的目录结构去寻找相应的python文件,一旦路径改动便会找不到了,从而报出 "bad interpreter"。
如果你看到这里,麻烦你点个赞或者关注吧,能坚持看到这里,说明你还是蛮有耐心的。自我感觉写的还是比较枯燥的。
好,继续回归正题。
接下来我们查看一下/userdata/archiconda3/bin/conda这个文件
cat /userdata/archiconda3/bin/conda
/userdata/archiconda3/bin/conda文件内容
发现了没,这边用的还是之前安装的/root/archiconda3,接下来同样,我们把它修改为/userdata/archiconda3
接下来再来执行一下那个熟悉的命令
source ~/.bashrc
这次不报错了,稍微轻松了一口气。
接下来我们执行一下命令
conda -V
也没有报错,仿佛所有都成功了噢,是不是就大功告成了呢???非也!屏幕前的你在这个时候千万不要放弃啊,继续看啊,这个时候就像你跑了一个20千米的马拉松,你半途退出比赛了,是不是有点可惜啊
接下来我们执行一下
pip list
发现报错了
-bash
这个时候,我们去修改一下/userdata/archiconda3/bin/pip文件,将其中的/root/archiconda3替换成/userdata/archiconda3就
如果你之前安装了用conda虚拟环境,同样发现
source activate py37
这个指令报错
-bash: /root/archiconda3/etc/profile.d/conda.sh: No such file or directory
这个时候你去修改一下/userdata/archiconda3/bin/activate,将其中的/root/archiconda3替换成/userdata/archiconda3就ok,既然/userdata/archiconda3/bin/activate文件修改了
/userdata/archiconda3/bin/activatedeactivate也修改一下啦,同样去修改将其中的/root/archiconda3替换成/userdata/archiconda3就ok。
还有最后几步啊,喂喂喂,屏幕前的你还在吧。哈哈哈,不要走了啊,你们是我坚持创作的动力和源泉,不要跑啊。开开玩笑啦,不然在写作的时候真的很枯燥。能双击一下屏幕吗,担心你不在状态,哈哈哈
当你进入创建的虚拟环境,我这边创建的是py37,进入虚拟环境命令
source activate py37
然后再执行pip,我的天,又报错了,什么鬼,莫慌莫慌
这个时候去查看一下/userdata/archiconda3/envs/py37/bin/pip这个文件,然后将/root/archiconda3改成/userdata/archiconda3就ok啦。
到这一步真的完全结束了。非常感谢你看到了这里。
最后总结一下
当你移动conda位置或者修改conda所在的文件名称后,你需要修改如下的文件:
- /userdata/archiconda3/etc/profile.d/conda.sh
- /userdata/archiconda3/bin/conda
- /userdata/archiconda3/bin/activate
- /userdata/archiconda3/bin/deactivate
- /userdata/archiconda3/bin/pip
如果你之前安装了虚拟环境,修改一下/userdata/archiconda3/envs/py37/bin/pip