apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。
apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
apt 命令执行需要超级管理员权限(root)。前些日子需要打一个镜像,用到的命令有点多,正好梳理一下,防止忘掉。
apt从哪里获取要安装的软件呢?答案是镜像源。镜像源的配置文件一般在:/etc/apt/sources.list。
该文件中的镜像源一般位于国外,所以安装包会比较慢,为解决这个问题,可以更换镜像源。
sed -i "s@http://deb.debian.org@https://mirrors.163.com@g" /etc/apt/sources.list
或者
sed -i 's/security-cdn.debian.org/mirrors.aliyun.com' /etc/apt/sources.list
如果使用https源,则需要执行apt install apt-transport-https,再执行apt update更新源索引。
直接更改/etc/apt/sources.list文件,国内常用的镜像源有163、中科大、阿里云、华为云、清华大学云、兰州大学云、上海交通大学云镜像源等。
如163的镜像源:
deb http://mirrors.163.com/debian/ stretch main non-free contrib
deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
deb与deb-src,是指软件包(deb)和源代码包(deb-src)
指向的是软件库的位置,apt会自动根据软件库的位置和第三字段的信息去抓取软件索引(/dists)和软件包或源代码包(/pool)的信息
代表的是发行版,与URL路径中dists目录下的文件夹对应
ubuntudebian都有自己的发行版本,以debian为例,有
通过如下命令可查看debian版本,镜像源尽量与系统版本一致
#命令
cat /etc/os-release
#结果
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
发行版的软件包,有多种,简单整理了一些
apt相关的命令有两个,一个是apt、一个是apt-get。
本次主要讲解apt-get命令,可通过apt-get -h或者man apt-get查看操作手册。
# apt-get -h
用法:apt-get [选项] 命令
apt-get [选项] install|remove 软件包1 [软件包2 ...]
apt-get [选项] source 软件包1 [软件包2 ...]
apt-get 可以从认证软件源下载软件包及相关信息,以便安装和升级软件包,
或者用于移除软件包。在这些过程中,软件包依赖会被妥善处理。
常用命令:
update - 取回更新的软件包列表信息
upgrade - 进行一次升级
install - 安装新的软件包(注:软件包名称应当类似 libc6 而非 libc6.deb)
reinstall - 重新安装软件包(注:软件包名称应当类似 libc6 而非 libc6.deb)
remove - 卸载软件包
purge - 卸载并清除软件包的配置
autoremove - 卸载所有自动安装且不再使用的软件包
dist-upgrade - 发行版升级,见 apt-get(8)
dselect-upgrade - 根据 dselect 的选择来进行升级
build-dep - 为源码包配置所需的编译依赖关系
satisfy - 使系统满足依赖关系字符串
clean - 删除所有已下载的包文件
autoclean - 删除已下载的旧包文件
check - 核对以确认系统的依赖关系的完整性
source - 下载源码包文件
download - 下载指定的二进制包到当前目录
changelog - 下载指定软件包,并显示其变更日志(changelog)
选项:
-h 帮助文件。
-q 输出到日志 - 无进展指示
-qq 不输出信息,错误除外
-d 仅下载 - 不安装或解压归档文件
-s 不实际安装。模拟执行命令
-y 在需要确认的场景中回应 yes
-f 尝试修正系统依赖损坏处
-m 如果归档无法定位,尝试继续
-u 同时显示更新软件包的列表
-b 获取源码包后编译
-V 显示详细的版本号
-c=? 阅读此配置文件
-o=? 设置自定的配置选项,如 -o dir::cache=/tmp
通过查功能,我们可以知道自己安装了哪些包,想要安装的包是否在镜像源里存在,以及是否有合适的版本。
apt list --installed
apt-cache madison 包名 #比较习惯使用这个
apt-cache policy 包名
apt-show-versions -a 包名
apt-cache show 包名
apt-get check
安装包主要使用apt-get install命令,不过该命令有很多参数可以使用
apt-get -y install 包名 [{=pkg_version_number | /target_release}] --force-yes
说明:
1.常用选项
2.指定版本
如果安装包,报依赖错误,可以执行该语句
apt-get -f install
带--purge,不但会删除包,还会删除配置文件等
apt-get remove 包名 --purge
apt-get clean
apt-get autoclean
更新源文件,并不会做任何安装升级操作。如果更新了/etc/apt/sources.list或者打算开始使用apt-get,都执行一下该命令
apt-get update
不太建议使用
apt-get upgrade
升级尽量用这个
apt-get install 包名 --only-upgrade
较少使用
apt-get install 包名 --reinstall
使用apt,可以使用下面的流程进行操作
1.更改镜像源文件,然后使用apt-get update命令
2.使用apt list --installed查看是否安装过,以及安装的版本信息
3.使用apt-cache madison 包名 查看要安装的包信息
4.使用apt-get -y install 包名 [{=pkg_version_number | /target_release}] 安装来自指定镜像源的指定版本
关于apt-get的使用还有很多内容,大家可以通过man apt-get查看。
大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫)
我的个人博客为:https://shidawuhen.github.io/
往期文章回顾:
更新时间:2024-08-21
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号