一文读懂apt、deb的基础知识(aptode)
toqiye 2024-10-01 22:56 1 浏览 0 评论
什么是deb?
deb是Debian派系Linux发行版软件包格式的文件扩展名。deb包在Linux操作系统中类似于windows中的软件包(exe),几乎不需要什么复杂的编译即可通过鼠标点击安装使用。常见的Linux派系如:
其中,Fedora派系的的软件包是扩展名为rpm的软件包,这里我们不做展开。本篇笔记我们以Ubuntu为例介绍deb软件包。
在Ubuntu桌面版下我们下载一些应用程序deb软件之后可以有两种安装方式,一种是可以直接双击安装deb软件包。另一种是通过命令的方式安装,如:
sudo dpkg -i xxx.deb
dpkg(Debian Packager) 是deb包管理工具,可以用来安装、更新、卸载deb软件包。
卸载命令如:
sudo dpkg -r xxx
什么是apt?
apt(Advanced Package Tool) 也是deb包管理工具。上面提到的dpkg(Debian Packager) 包管理工具主要用于安装我们下载到本地的deb软件包。而apt包管理工具则可以直接从Ubuntu官方服务器软件仓库中搜索、安装软件到我们的Ubuntu系统,也可以通过apt工具更新、卸载我们的deb软件。
Ubuntu官方软件仓库里的软件都是经过严格审核、质量得到保证的软件包,第三方开发者开发的软件需要通过官方的认证,才能放到官方软件仓库中。
为了能更清楚地了解apt、dpkg包管理工具,我们把手机上安装软件拿来做个对比:
在Ubuntu中使用apt进行安装软件就比如我们手机直接从应用商店里下载软件进行安装,后续应用商店里的软件有更新,也会通知我们进行更新。Ubuntu中使用dpkg安装软件就比如我们在手机浏览器中下载的软件,需要手动进行安装。
apt与dpkg的区别及联系是:
- dpkg是用来安装.deb文件,但不会解决模块的依赖关系,且不会关心ubuntu的软件仓库内的软件,可以用于安装本地的deb文件。
- apt会解决和安装模块的依赖问题,并会咨询软件仓库,但不会安装本地的deb文件,apt是建立在dpkg之上的软件管理工具。
使用apt安装软件
我们可以使用如下apt命令安装软件:
sudo apt-get install xxx
其中,xxx表示的是需要安装的软件。
比如我们可以输入sudo apt-get install sl命令安装sl软件。sl软件是一个有趣的软件,运行sl命令之后,我们的终端里会出现一辆小火车:
我们输入以上安装sl软件的命令之后,会从官方软件源中下载sl软件并进行安装。Ubuntu官方软件源(repository)地址:
http://cn.archive.ubuntu.com/ubuntu
这个地址被保存到/etc/apt/source.list中。执行sudo apt-get install命令则会从这个文件的服务器地址去下载相应的软件包。
全球各地每个地方的网络环境都不一样,所以就出现了各地的镜像服务器,比如国内的有清华软件源、阿里云软件源、中科大软件源等。
我们可以往/etc/apt/source.list中加入我们国内的一个软件源,这样一来,之后我们使用sudo apt-get install安装软件时就会到我们国内的镜像服务器上下载软件,速度会快很多。对于带图形界面的Ubuntu,我们也可以在软件更新那里选择镜像服务器,如选择清华软件源:
这里进行选择就会自动地在/etc/apt/source.list增加相关的服务器地址,如:
修改好/etc/apt/source.list文件之后我们需要使用sudo apt-get update命令更新服务器中可以下载的软件列表:
软件列表的一个作用是可以帮助我们更新软件,因为服务器上的软件是不断更新的,就如我们手机应用商店里的软件也在不断更新,若软件有更新则会提醒我们进行更新。
如果我们想要更新软件,可以执行sudo apt-get upgrade来更新已经安装的软件:
最后,卸载软件的命令为:
sudo apt-get remove
制作自己的deb包
必要的时候,我们也可以制作自己的软件包。
deb包就是我们的应用程序软件包,其除了包含有可执行文件,还会包含一些包名、版本号等说明文档。一个deb在制作前需要新建一个文件夹管理一些所需要的文件,如:
其中,usr/local/bin表明deb的默认安装路径为/usr/local/bin(这是系统的“官方路径”)。默认安装路径我们可以通过修改文件夹名称进行修改,比如把上面的usr/local/bin改为home/ZhengN/则该软件包的默认安装路径就变为/home/ZhengN。
下面我们按照如上结构制作一个hellodeb的deb软件包。为了方便,我们在DEBIAN下添加必要的control文件,其它文件暂时不添加,结构如:
1、准备一个hellodeb.c文件:
#include <stdio.h>
int main(void)
{
printf("hellodeb\n");
return 0;
}
使用gcc编译得到一个hellodeb的可执行文件。复制到hellodeb/usr/local/bin文件夹下。
2、准备一个control文件:
Package:hellodeb
Version:1.0
Architecture:amd64
Maintainer:ZhengN
Description:deb test
把control文件存放于hellodeb/DEBIAN目录下。
这时候我们的hellodeb目录下有:
这时候我们可以在hellodeb路径下运行如下命令生成deb软件包:
sudo dpkg-deb -b ../hellodeb ../hellodeb_1.0_amd64.deb
这时候在hellodeb的上级目录生成hellodeb_1.0_x64.deb软件包:
在hellodeb_1.0_x64.deb所在路径执行如下命令安装软件包:
sudo dpkg -i hellodeb_1.0_amd64.deb
这时候hellodeb软件应用已经被安装在了系统的/usr/local/bin路径下:
我们可以在终端任何路径下运行hellodeb程序:
我们可以通过如下命令卸载hellodeb程序:
sudo dpkg -r hellodeb
卸载之后再运行就会报错:
bash: /usr/local/bin/hellodeb: No such file or directory
以上就是本次的分享,感谢阅读。
如果觉得文章不错,麻烦帮忙转发,谢谢!
相关推荐
- 完美解决MAC电脑空间不足问题(完美解决mac电脑空间不足问题的办法)
-
很多用MAC(苹果笔记本)电脑的人,特别是做iOS开发的,都会遇到一个头疼的问题,那就是电脑磁盘空间不足的问题。这个问题也困扰了我好久,我的开发机是256G的SSD(固态硬盘),但是用着用着就会空间不...
- 系统清理软件Omni Remover for Mac版
-
内容介绍你是否需要一款可以帮你清理Mac系统顽固垃圾的工具呢?试试OmniRemoverforMac吧!OmniRemoverMac版是一款运行在Mac平台上的系统清理软件。OmniRem...
- mac上一款好用的多功能系统清理软件Omni Remover for Mac
-
mac上一款好用的多功能系统清理软件——OmniRemoverforMac。OmniRemovermac破解版是Mac平台上的一款软件清理工具。OmniRemoverMac版专为优化内存...
- 清理重建mac OS图标缓存(mac系统清空)
-
关于macos缓存问题你了解多少?今天macdown小编带大家了解下有关Mac清除图标缓存的相关知识!你知道吗?为了提升图形界面加载速度,默认情况下macOS针对Finder和Dock中的...
- iOS 9 人机界面指南(五):图标与图形设计
-
来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。文章索引5.1图标与图像尺寸(IconandImageSizes)5.2应用图标(AppIcon)5.2....
- 你中招了吗?盘古团队发布XcodeGhost病毒检测应用
-
最近大批知名iOS应用被感染XcodeGhost病毒事件闹得沸沸扬扬,虽然该病毒作者发表声明称,XcodeGhost源于自己的实验,没有任何威胁性行为,同时公开了源代码。但依然无法消除众多用户的担忧,...
- iOS应用感染Xcode真是无恶意实验?感染APP最新名单及版本号
-
前瞻科技快讯9月19日消息,一向号称是最安全的iOS真的不安全了?对于这两天闹得沸沸扬扬的多款iOS应用感染XcodeGhost病毒事件,今日凌晨4点左右,网友@XcodeGhost-Author在微...
- 苹果应用签名失败怎么处理(ios应用签名什么意思)
-
在移动应用开发过程中,苹果应用签名失败是一种常见的问题,它可能由多种原因引起。本文将介绍一些处理苹果应用签名失败的方法,帮助开发者解决这个问题。检查证书和描述文件:首先,开发者应该检查使用的证书和描述...
- 好用的系统扫描和清理工具推荐:OS Cleaner Pro for Mac
-
为大家推荐一款全面的系统扫描和清理工具,OSCleanerProforMac...
- 系统清理软件 Omni Remover for Mac
-
你是否需要一款可以帮你清理Mac系统顽固垃圾的工具呢?试试OmniRemoverforMac吧!OmniRemoverMac版是一款运行在Mac平台上的系统清理软件。OmniRemover...
- 优秀的Mac系统清理软件(mac清理系统占用空间)
-
OmniRemoverforMac是一款优秀的系统清理软件,功能有清洁卸载膨胀且顽固的应用程序,在macOSCatalina上清除32位不兼容的应用程序,iTunes,Xcode和Sketc...
- 苹果app安卓apk应用内用微信登录游戏时会显示登录失败怎么解决?
-
解决苹果iOS应用和安卓APK应用在使用微信授权登录时出现“登录失败,签名不一致”的问题,可以按照以下步骤进行排查和解决:1.核实AppID和AppSecret:确保iOS和安卓项目中使用的微信开放...
- Cleaner for Xcode(遗留废弃文件清理工具)
-
Mac上的Xcode总是占用很大空间,并且用的时间越久越大!可通过删除不需要的和不建议使用的文件来帮助您加快Xcode的运行速度,你可以每月或者每周运行一次进行清理。有需要的朋友,赶快来下载吧~Cle...
- Cleaner for Xcode mac(xcode清理工具)
-
Xcode文件太多,如何检测清理?试试CleanerforⅩcode吧!CleanerforXcodeforMac可以检测您的Xcode占用磁盘的情况,统计各个部件所占用的空间。并帮助您...
- 柠檬清理一款Mac设备必备的实用工具
-
简介柠檬清理是针对macOS系统专属制定的清理工具。主要功能包括重复文件和相似照片的识别、软件的定制化垃圾扫描、可视化的全盘空间分析、内存释放、浏览器隐私清理以及设备实时状态的监控等。重点聚焦清理功能...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 完美解决MAC电脑空间不足问题(完美解决mac电脑空间不足问题的办法)
- 系统清理软件Omni Remover for Mac版
- mac上一款好用的多功能系统清理软件Omni Remover for Mac
- 清理重建mac OS图标缓存(mac系统清空)
- iOS 9 人机界面指南(五):图标与图形设计
- 你中招了吗?盘古团队发布XcodeGhost病毒检测应用
- iOS应用感染Xcode真是无恶意实验?感染APP最新名单及版本号
- 苹果应用签名失败怎么处理(ios应用签名什么意思)
- 好用的系统扫描和清理工具推荐:OS Cleaner Pro for Mac
- 系统清理软件 Omni Remover for Mac
- 标签列表
-
- systemproperties (65)
- show-overflow-tooltip (53)
- canvas图片 (57)
- npm版本管理 (61)
- localhost:15672 (59)
- materialtheme (86)
- node-ssh (68)
- 全局路由守卫 (57)
- springbootcachemanager (57)
- 图床搭建 (62)
- vue3addeventlistener (60)
- mybatisselectone (78)
- css圆形进度条 (69)
- androidble蓝牙开发 (62)
- vue-router的实现原理 (53)
- usememo (53)
- log4j.xml (54)
- maven跳过测试打包 (57)
- npmjsencrypt (55)
- android-gif-drawable (60)
- appender-ref (64)
- springbootmockito (68)
- css边框渐变色和圆角 (58)
- gsonfastjson (59)
- 依赖注入的方式 (62)