oeasy教您玩转linux010202软件包管理apt
顾一下
上一部分我们都讲了什么?
- yes命令
- 持续输出某字符串
yes oeasy
还有什么好玩的命令吗?
列出所有包
apt list
这里好多文件啊,我们找找有没有yes
# 找到yes对应位置
which yes
# /usr//bin/yes属于哪个包
dpkg -S /usr/bin/yes
# 在已经安装的包里面找到coreutil
dpkg -l coreutils
# coreutils到底是干什么的?
dpkg -s coreutils
# 在已安装列表中搜索coreutils
apt list coreutils
# 在源中搜索coreutils
apt search coreutils
- dpkg对应debian package 是传统包管理
- dpkg更多的是本地包的各种安装卸载查看
- 早年间都是通过ftp下载到本地,再dkpg的
- apt是新的包管理工具
- apt更多的是网络包的安装卸载查看
- 如果有些包你是从红帽系rpm下载的
- 可以用alien转化为deb
- 然后安装deb文件
- 可以用apt下好玩的包吗?
apt
- apt是advanced package tools的意思
- apt是debian系发行版的软件包管理工具
- 红帽系的yum、arch系的pacman也是很好的管理工具
为什么要用这个工具?
- 不同的cpu架构要用不同的二进制文件
- 你可以有两种方法得到某种架构(比如mips)的二进制文件
- 直接下载这个架构的二进制文件
- 下载这个软件包的源文件,自己编译⚙️
但是这个得到的二进制文件还是有可能不能用
- 软件包之间是有依赖关系的
- 这个软件包依赖的软件包不存在
- 甚至被依赖的软件包所依赖的软件包不存在
- 这就形成了一条链路
- 我们需要把这条链路上所有的软件包都下载下来
以上做法太麻烦了,我们只需要
- 使用apt把相关操作封装成接口
- 我们直接调用apt就可以了
- 所以叫做高级包管理工具
- 当然你得有地方下载,这就需要镜像站.
镜像站(mirrors)
软件包放在网络上
- debian系的镜象列表是
- https://www.debian.org/mirror/list
- 这里面其实对应的就是我们/etc/apt/sources.list
镜像站一般也不只提供一个发行版的镜像
- 以清华镜像站为例
- https://mirror.tuna.tsinghua.edu.cn/
- 有好多发行版
- 点击发行版或软件包后面问号
- 可以获得sources.list的相关清华源配置代码

实验楼里面默认的是阿里源也很好用
- 我们要下载一个应用linuxlogo
- 我先看看我设置的这些源里面有没有
sources.list
sources.list语法是这样的
- deb url distribution component1 component2 component3 [..] componentX
- deb-src url distribution component1 component2 component3 [..] componentX
- deb对应二进制文件
- deb-src对应源文件
- 在地址后面有个版本号
- 版本在dists(distribution)里面可以找到
- https://mirror.tuna.tsinghua.edu.cn/debian/dists/
- debian系列版本号都是玩具总动员中的角色
- ubuntu版本号来自于动物
- main、contribute是文件夹的名字
- Buster版是最新的稳定版,适合拿来使用
- 维护者维护的源头是源文件
- 有了源文件,可以编译成到各种架构的二进制文件
- 修改也是,先修改源文件
各种版本的生命周期

package
软件包发布的过程生命周期
# 搜索源里面有没有linuxlogo这个软件包
apt search linuxlogo
# 看看镜像站上面对于这个软件包的描述
apt show linuxlogo
# 下载安装这个软件包
apt install linuxlogo
- search 查找到你的当前架构是否可以有这个软件包
- show 显示开发者 简介 大小 所在的源的位置
- 我们可以apt show apt看看apt的依赖关系
- (A 或 B) 且 C 的关系写作 A | B, C
- 第三条执行不下去,因为没有权限
- 我怎么才能让他执行下去呢?
- 下次再说!
oeasy教您玩转linux010202软件包管理apt的更多相关文章
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy教您玩转linux010107那啥在哪 whereis
回忆上次内容 上次讲了 ls 的参数 (arguement) 和选项 (option) 的设置. 现在我们要制作这样一个列表:
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转python - 006 - # hello world
Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...
随机推荐
- __STL_VOLATILE
_Obj* __STL_VOLATILE* __my_free_list = _S_free_list + _S_freelist_index(__n); _Obj* * __my_free_list ...
- Android MTK平台 客制化系统来电界面(屏蔽 InCallUI 提供接口给客户自行展示来电去电页面)
OS: Android 8.1 需求分析 1.禁止系统来电铃声,提供接口给客户自己播放铃声 2.禁止系统拉起来去电页面(InCallActivity),消息通知客户拉起自己的来去电页面 3.禁止来电消 ...
- 基于asp.net core 从零搭建自己的业务框架(一)
前言 asp.net core版本选择2.2,只是因为个人习惯了vs2017,代码以及设计皆可移植到vs2019,用asp.net core 3.0以及以上运行起来 项目类似选择web api,基础设 ...
- 【NOI2001】方程的解数 题解(dfs+哈希)
题目描述 已知一个方程 k1*x1^p1+k2*x2^p2……+kn*xn^pn=0. 求解的个数.其中1<=x<=150,1<=p<=6; 答案在int范围内 输入格式 第一 ...
- 【模式识别与机器学习】——4.3离散K-L变换
全称:Karhunen-Loeve变换(卡洛南-洛伊变换) 前面讨论的特征选择是在一定准则下,从n个特征中选出k个来反映原有模式. 这种简单删掉某n-k个特征的做法并不十分理想,因为一般来说,原来的n ...
- C#LeetCode刷题之#633-平方数之和( Sum of Square Numbers)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3885 访问. 给定一个非负整数 c ,你要判断是否存在两个整数 ...
- Xor 思维题
Xor 思维题 题目描述 小\(Q\)与小\(T\)正在玩一棵树.这棵树有\(n\)个节点,编号为 \(1\),\(2\) \(3...n\),由\(n-1\)条边连接,每个节点有一个权值\(w_i\ ...
- JavaScript基础-02
1. 六种数据类型: string字符串:number数值:boolean布尔值:null空值:undefined 未定义:object对象 基本数据类型(值类型): string字符串:number ...
- Mybatis中<![cdata[ ]]>
1.<![cdata[ ]]>介绍 <![cdata[ 内容 ]]>是一种xml语法,在CDATA标记中的信息被解析器原封不动地传给应用程序,并且不解析该段信息中的任何控制标记 ...
- Golang gRPC学习(04): Deadlines超时限制
为什么要使用Deadlines 当我们使用gRPC时,gRPC库关系的是连接,序列化,反序列化和超时执行.Deadlines 允许gRPC客户端设置自己等待多长时间来完成rpc操作,直到出现这个错误 ...