美文网首页Linux
apt-get 详解&&配置阿里源

apt-get 详解&&配置阿里源

作者: 大富帅 | 来源:发表于2018-01-18 10:23 被阅读693次

    配置apt-get的下载源

    1、复制原文件备份
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

    2、编辑源列表文件

    sudo vim /etc/apt/sources.list

    3、将原来的列表删除,添加如下内容

    4、运行sudo apt-get update

    5、运行sudo apt-get upgrade

    apt-get 工作原理

    Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类地存放在软件仓库中,进行有效地组织和管理。然后,将软件仓库置于许许多多的镜像服务器中,并保持基本一致。这样,所有的Ubuntu用户随时都能获得最新版本的安装软件包。因此,对于用户,这些镜像服务器就是他们的软件源(Reposity)

    然而,由于每位用户所处的网络环境不同,不可能随意地访问各镜像站点。为了能够有选择地访问,在Ubuntu系统中,使用软件源配置文件/etc/apt/sources.list列出最合适访问的镜像站点地址。

    1. apt-get的更新过程

    1)执行apt-get update
    2)程序分析/etc/apt/sources.list
    3)自动连网寻找list中对应的Packages/Sources/Release列表文件,如果有更新则下载之,存入/var/lib/apt/lists/目录
    4)然后 apt-get install 相应的包 ,下载并安装。

    即使这样,软件源配置文件只是告知Ubuntu系统可以访问的镜像站点地址,但那些镜像站点具体都拥有什么软件资源并不清楚。若每安装一个软件包,就在服务器上寻找一遍,效率是很低的。因而,就有必要为这些软件资源列个清单(建立索引文件),以便本地主机查询。

    用户可以使用“apt-get update”命令刷新软件源,建立更新软件包列表。在Ubuntu Linux中,“apt-get update”命令会扫描每一个软件源服务器,并为该服务器所具有软件包资源建立索引文件,存放在本地的/var/lib/apt/lists/目录中。 使用apt-get执行安装、更新操作时,都将依据这些索引文件,向软件源服务器申请资源。因此,在计算机设备空闲时,经常使用“apt-get update”命令刷新软件源,是一个好的习惯。

    2. apt-get install原理
    apt-get install原理图
    3. apt-get 常用命令
    apt-cache search packagename 搜索包
    apt-cache show packagename 获取包的相关信息,如说明、大小、版本等
    apt-get install packagename 安装包
    apt-get install packagename - - reinstall 重新安装包
    apt-get -f install 修复安装"-f = --fix-missing"
    apt-get remove packagename 删除包
    apt-get remove packagename - - purge 删除包,包括删除配置文件等
    apt-get update 更新源
    apt-get upgrade 更新已安装的包
    apt-get dist-upgrade 升级系统
    apt-get dselect-upgrade 使用 dselect 升级
    apt-cache depends packagename 了解使用依赖
    apt-cache rdepends packagename 是查看该包被哪些包依赖
    apt-get build-dep packagename 安装相关的编译环境
    apt-get source packagename 下载该包的源代码
    apt-get clean 清理无用的包
    apt-get autoclean 清理无用的包
    apt-get check 检查是否有损坏的依赖
    
    4. apt相关文件

    var/lib/dpkg/available 文件的内容是软件包的描述信息, 该软件包括当前系统所使用的Debian 安装源中的所有软件包,其中包括当前系统中已安装的和未安装的软件包.

    /etc/apt/sources.list 记录软件源的地址(当你执行 sudo apt-get install xxx 时,Ubuntu 就去这些站点下载软件包到本地并执行安装)

    /var/cache/apt/archives 已经下载到的软件包都放在这里(用 apt-get install 安装软件时,软件包的临时存放路径)

    /var/lib/apt/lists 使用apt-get update命令会从/etc/apt/sources.list中下载软件列表,并保存到该目录

    实际问题

    问题:
    昨天我想升级某个库,但是不能像pip install xx==版本号这样升级,我就想直接卸载掉这个软件,然后再重新安装,结果卸载掉以后,连我的nginx也卸载掉了,晕。
    然后我重新安装sudo apt-get install nginx ,居然由报错缺少nginx-extra nginx-full ..等等的库,然后我自己上ubuntu下载这些缺少的库,想着逐个安装,虽然这是最笨的方法,但也没办法阿。
    然后逐个安装的时候,每个都报错说缺少哪个哪个库,就是一种死循环。

    方法:

    幸亏最好的办法就是把整个sources.list 更换成上面的啊里云的源,重新apt-get update,更新源,然后就可以下载了。

    参考

    ubuntu软件包管理系统之apt 和 dpkg原理
    Linux软件安装管理之——dpkg与apt-*详解
    Debian & Ubuntu最实用的apt-get命令详解

    安装mysql一直失败, 说mysql-common mysql-client什么依赖不存在
    然后查了资料,删除mysql 相关的包,再重新安装就可以了

    sudo apt-get remove --purge mysql-server mysql-client mysql-common
    sudo apt-get autoremove
    sudo apt-get autoclean
    
    ``

    相关文章

      网友评论

        本文标题:apt-get 详解&&配置阿里源

        本文链接:https://www.haomeiwen.com/subject/znmioxtx.html