apt-get、conda、pip安装东西确实很方便,可是你有想过他们工作到底是个什么流程么?我的东西被下载到哪里了?又被安装在哪里了?
目录
前言:
一:conda的下载安装细节分析
1.环境说明:
2.我们先假装要升级一下conda,但是在问你是否升级的时候选择no
3.然后我们这次真的升级一下conda
4.我们再下载一个新的没有依赖的包_r-mutex
5.我们试着删除这个包看看
6.我们再下载一个没有依赖的包giflib
7.最后我们来把大的,安装一个mxnet,可以看到需要下载好几个包,更新好几个包,删除一个包,这次操作其实就是之前几次操作的一个整合版
8.总结,懒人直接看结论
二:pip安装
三:apt-get安装
1.相关目录
2.安装位置
ubuntu16.04
安装了anaconda3
首先我的anaconda3安装在/opt/目录下,然后我cp了一份对比,虽然有点奇怪,两个大小不一样。。。我估计是cp的问题,但是不影响我们的对比实验
先对比一下,虽然显示文件不存在,但是其实都有的。。。没关系,不影响我们的对比实验
然后我们再对比一下,可以看到是/opt/anaconda3/pkgs/cache/里的.q和.json文件发生了变化
然后再对比一下,有点长我分段截图了,其实可以看出发生变化的是
1.在anaconda3/conda-meta里添加了json文件
2.修改了anaconda3/conda-meta里的history文件
3.修改了anaconda3/lib/python3.6/site-packages/conda这个文件夹里的很多文件
4.顺带一提的是anaconda3/lib/python3.6/site-packages/conda里的.egg-info文件
5.修改了anaconda3/lib/python3.6/site-packages/conda_env这个文件夹里的很多文件
6.在anaconda3/pkgs里添加了2个文件。其中.tar.gz2解压出来就是另外一个文件
7.修改了anaconda3/pkgs里的urls.txt文件
对比一下,可以看出发生变化如下:
1.在anaconda3/conda-meta里添加了json文件
2.修改了anaconda3/conda-meta里的history文件
3.修改了anaconda3/lib/python3.6/site-packages/conda这个文件夹里的很多文件
4.顺带一提的是anaconda3/lib/python3.6/site-packages/conda里的.egg-info文件
5.修改了anaconda3/lib/python3.6/site-packages/conda_env这个文件夹里的很多文件
6.在anaconda3/pkgs里添加了2个文件。其中.tar.gz2解压出来就是另外一个文件
7.修改了anaconda3/pkgs里的urls.txt文件
对比发现
1.conda-meta文件夹里的json信息被删除了
2.conda-meta里的history被修改了
3.但是pkgs里下载的文件没有被删除,还在
对比发现如下变化:
1.在anaconda3/conda-meta里添加了json文件
2.修改了anaconda3/conda-meta里的history文件
3.修改了anaconda3/lib/python3.6/site-packages/conda这个文件夹里的很多文件
4.顺带一提的是anaconda3/lib/python3.6/site-packages/conda里的.egg-info文件
5.修改了anaconda3/lib/python3.6/site-packages/conda_env这个文件夹里的很多文件
6.在anaconda3/pkgs里添加了2个文件。其中.tar.gz2解压出来就是另外一个文件
7.修改了anaconda3/pkgs里的urls.txt文件
8.在anaconda3/bin里添加了一些可执行文件
9.在anaconda3/lib里添加了一些.so文件
对比发现如下变化:
1.在anaconda3/conda-meta里添加了json文件
2.修改了anaconda3/conda-meta里的history文件
3.在anaconda3/lib/python3.6/site-packages/这个文件夹里添加了mxnet等文件夹
4.顺带一提的是anaconda3/lib/python3.6/site-packages/conda里的.egg-info文件
5.修改了anaconda3/lib/python3.6/site-packages/conda_env这个文件夹里的很多文件
6.在anaconda3/pkgs里添加了2个文件。其中.tar.gz2解压出来就是另外一个文件
7.修改了anaconda3/pkgs里的urls.txt文件
8.在anaconda3/bin里添加了一些可执行文件
9.在anaconda3/lib里添加了一些.so文件
10.在anaconda3/include里添加了一些文件
11.在anaconda3/man里添加了一些文件
12.在anaconda3/share里添加了一些文件
到这为止,我想你应该差不多明白。我最后总结一下:
1.anacoda3/conda-meta/history里会记录你的使用conda命令安装、卸载、升级包的操作
2.anaconda3/pkgs/urls.txt里会记录你用conda命令下载包的地址,你直接复制到浏览器中也可以下载
3.anaconda3/conda-meta/这个文件夹里会对每个包有一个对应名字的.json文件(有些包会有多个.json文件),这个文件会记录这个包的一些版本、存放位置、md5值等信息
4.anaconda3/pkgs/这个文件夹里存放了每个包刚下载来的文件,格式是.tar.gz2,另外也会自动解压到这个文件夹里。比如你下载了six这个包,anaconda3/pkgs/这个文件夹里会多出如下2个文件。另外,当你卸载包的时候,这里的2个文件是不会被删除的
5.anaconda3/lib/python3.6/site-packages/这个文件夹存放的就是每个包的文件夹,我们常用的tensorflow就是从这里导入的
6.anaconda3/bin,安装一些包的时候会往里添加一些可执行文件
7.在anaconda3/lib,安装一些包的时候会往里添加了一些.so文件
8.在anaconda3/include,安装一些包的时候会往里添加了一些文件
9.在anaconda3/man,安装一些包的时候会往里里添加了一些文件
10.在anaconda3/share,安装一些包的时候会往里里添加了一些文件
首先,因为有时候系统自带python2和python3,另外你自己又安装了anaconda,导致你的系统里有好几个地方都有Python,所以你先要确定你运行的pip来自谁。输入pip -V查看。我的pip来自/opt/anaconda3/bin。
我有个包是pip安装的,然后我搜索一下关于这个包的一些文件的位置
显而易见,pip安装的包位于/opt/anaconda3/lib/python3.6/site-packages/这个文件夹里
参考自https://www.jianshu.com/p/b2eed75b9855
/etc/apt/sources.list 存放的是软件源站点
/var/lib/apt/lists 使用apt-get update命令会从/etc/apt/sources.list中下载软件列表,并保存到该目录
/var/cache/apt/archives 目录是在用 apt-get install 安装软件时,软件包的临时存放路径。但是我发现好像不是所有包的安装都会在这产生临时文件
/var/lib/dpkg/available 文件的内容是软件包的描述信息, 该软件包括当前系统所使用的 ubunt 安装源中的所有软件包,其中包括当前系统中已安装的和未安装的软件包.
/var/lib/dpkg/status 这是我自己补充的,我发现我自己安装的包的信息在这里是有的,但是在available中却没有
位置 | 信息 |
---|---|
/usr/bin | 二进制文件 |
/usr/lib | 动态函数库文件 |
/usr/share/doc | 使用手册 |
/usr/share/man | man page |