浅析aptdeb背后的一些知识
什么是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 int main(void) { printf("hellodeb "); 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
以上就是本次的分享,感谢阅读。
码字不易,如果觉得文章不错,麻烦帮忙转发,谢谢!
参考: 《嵌入式C语言自我修养》 野火《Linux开发实战指南》
网传这么多号称一元吃外卖的公众号,到底是不是真的不仅仅是在头条上,抖音,快手,各大短视频网站早已沦陷,对于一元吃外卖的噱头也是呼声日渐高涨关注了那么多关注,点击去各种分享助力,到底有没有用呢?诸如此类的外卖号亲身测评,答案是,没
这喵一定是中国的那些年的猫猫狗狗们这喵一定是中国的!乒乓球为什么树懒叫树懒明白了吧星际争霸!2v1蟹老板我先回去了!螃蟹的速度吖旋转跳跃我闭着眼太开心了hhh
入门精品ECHO系列吉他音箱一款搭配Blackstar专利EQ系统ISF功能,以及可调节数字磁带延迟周边效果音色出众的系列吉他音箱LTECHO10和LTECHO15Blackstar的设计理念一直是为吉他手提
这么多大学生日入几十上百的网上兼职,有哪些是真正靠谱的?配音,绘画,影视剪辑,树洞,PPT,闲鱼转转,寄拍模特,兼职客服,剧本杀,剧组招人,问卷调查,拆书稿,叫人起床,游戏陪玩,,,到底哪些才是普通素人可以入手做的?兼职推荐都在说几十几
621大家一起来玩乐1981年,法国文化部长朗杰克和团队构想举办一种新型的乐器节日,这个节日对所有人开放,无论年轻或年长专业或业余,每个人都可以自由参加活动,在街角公园广场,甚至山顶,和朋友邻居路人分
深情的告白演唱怎么能少的了Martin的陪伴薛之谦应该算是中国大陆一个大器晚成的实力派创作歌手,从他最开始05年参加娱乐选秀节目我型我秀出道以来,他的努力一直是被大家有目共睹。终于他成功了,红透了半个娱乐圈,同时他在各大娱乐
PRSWoodLibrary到底是什么?PRS所生产的吉他中有一些琴经常标有WoodLibrary字样。这是什么意思?在本文中,我们将对这些带有WoodLibrary标识的PRS吉他做出详细解答。在PRS公司8。5万平方
EricJohnson最爱的原声吉他MartinD45EricJohnson生于1954年的美国德州TEXAS的Austin市。受其父亲影响,3岁就已开始喜爱音乐,5岁即开始学习钢琴,8岁便展露了其音乐才华并开始作曲,10岁时开始接触
2017美国Martin吉他工厂铂金之旅(2)上文中提到了我们2017美国Martin吉他工厂铂金之旅的第一天行程主要内容,本次将继续跟大家分享本次活动的第二天概况(以下大量精美独家图片,建议在有WIFI地点观看,土豪随意)。
Blackstar10周年2017年是来自英国的吉他音箱新派代表Blackstar成军10周年的重要时刻,在短短十年时间中,这个凝聚了创新精神和崭新品牌理念,旨在打造TheSoundInYourHead(你
2017美国PRS吉他工厂铂金之旅今年雅登中国与美国著名吉他公司PRS首次联合,组织中国PRS经销商进行PRS吉他工厂铂金之旅活动,本次活动吸引了大量中国PRS经销商参加,同时PRS公司创始人PaulReedSmi