[转帖]apt-get 详解&&配置阿里源

apt,get,详解,配置,阿里 · 浏览次数 : 0

小编点评

**配置apt-get的下载源** 1. 创建一个新的源文件:`sudo vim /etc/apt/sources.list` 2. 添加阿里云的源地址: ``` deb https://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverseubuntu ``` 3. 保存并退出编辑器 4. 重新运行`sudo apt-get update`命令 **apt-get 的安装原理** 1. apt-get 扫描软件源服务器,并为每个软件源服务器建立索引文件。 2. 当您执行 `sudo apt-get install xxx` 命令时,apt-get 会从索引文件中找出所需的软件包并下载它们。 3. 这些索引文件包含软件包的名称、版本、大小和其他信息。 **使用 apt-get 更新源** 1. 修改 `/etc/apt/sources.list` 文件,添加阿里云的源地址。 2. 重新运行 `sudo apt-get update` 命令。 3. apt-get 将从阿里云的源中获取最新软件包信息。

正文

https://www.cnblogs.com/clemente/p/10688169.html

 

配置apt-get的下载源

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

2、编辑源列表文件

sudo vim /etc/apt/sources.list

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

复制代码
阿里云的源
deb http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverse

ubuntu的源, 最好也加上,避免某些库下载不到
deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
复制代码

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 详解&&配置阿里源相似的内容:

[转帖]apt-get 详解&&配置阿里源

https://www.cnblogs.com/clemente/p/10688169.html 配置apt-get的下载源 1、复制原文件备份sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 2、编辑源列表文件 sudo vim /et

[转帖]apt-get update出现NO_PUBKEY问题解决

apt-get update报错 root@2870e7cf8e74:/usr/tools# apt-get update Ign:1 https://mirrors.aliyun.com/ubuntu trusty InRelease Get:2 https://mirrors.aliyun.co

[转帖]ubuntu apt-get update时报错:由于没有公钥,无法验证下列签名: NO_PUBKEY 40976EAF437D05B5 E: 仓库...

在使用apt-get update 更新ubuntu时,出现下面的错误: W: GPG 错误:http://mirrors.aliyun.com/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 40976EAF437D05B5 NO_PUBKE

[转帖]Linux环境使用apt-get安装telnet、curl、ifconfig、vim、ping等工具

https://www.cnblogs.com/east7/p/15834866.html 当在Linux服务器执行Telnet命令时,如果提示command not found: telnet,说明服务器上并未安装Telnet命令,需要安装此命令。下面介绍在linux服务器如何安装telnet、c

[转帖]The necessary bits to build these optional modules were not found: _uuid _bz2 _curse _curses_panel

在安装Python3.7可能遇到如题的错误,只需安装uuid库就可以 ubuntu下安装uuid链接库 sudo apt-get install uuid-dev CentOS yum install libuuid-devel 对于以下的问题 The necessary bits to build

[转帖]实用工具汇总

https://www.bilibili.com/read/cv10988196?spm_id_from=333.999.0.0 Cockpit: Linux 服务器的 Web 控制台 对于Ubuntu系统: sudo apt-get install cockpit 其他Linux发行版的安装方法

[转帖]ubuntu开启sar记录日志

https://www.cnblogs.com/ishmaelwanglin/p/16955227.html 背景 之前一直用CentOS系统,最近换到了ubuntu的,sar日志对分析系统状态和基本性能比较有帮助,发现在ubuntu上默认是不记录sar日志的 安装 apt-get install

[转帖]ubuntu开启sar记录日志

https://www.cnblogs.com/ishmaelwanglin/p/16955227.html 背景 之前一直用CentOS系统,最近换到了ubuntu的,sar日志对分析系统状态和基本性能比较有帮助,发现在ubuntu上默认是不记录sar日志的 安装 apt-get install

[转帖]apt命令详解

https://blog.yelvlab.cn/archives/654/ apt命令详解 apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。 apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令

[转帖]apt update和apt upgrade命令 - 有什么区别?

在之前的文章中,我们查看了APT 命令以及您可以使用包管理器来管理包的各种方法。这是一个总体概述,但在本指南中,我们暂停并重点关注 2 个命令用法。这些是apt update和apt upgrade命令。 apt update 和 apt upgrade 是许多 Linux 用户最常用但被误解的两个