ubuntu 软件包管理整理 dpkg apt ppa

来源:互联网 发布:虚拟主机控制面板源码 编辑:程序博客网 时间:2024/06/05 11:33

对于Ubuntu软件的管理,很多东西用的时候总是忘了,所以就自己整理下了。


Ununtu软件管理工具
主要功能:安装,删除,查询


dpkg(Debian Package Management System)
deb实现对二进制软件的管理,无法自动解决软件之间的依赖关系,所以要提供一个前端程序apt解决

deb包的安装,首先要下载包,是以.deb为后缀的去安装包,安装完后的软件是没有.deb后缀的
使用dpkg安装
sudo dpkg -i 包名.deb
安装完成后,系统的数据库会存储这个包,是没有deb后缀的

查询系统已经安装的包,就是把已安装的包的数据库打印出来
dpkg -l | less
每个记录的属性分别是
在数据库标识符(可看最顶端的的信息进行配对) 包的名称  包的版本 
包支持的体系结构 包的说明信息

注意一下命令包名的区别

查询包的信息(查询的名称是数据里的)
sudo dpkg --status 包名
查询带.deb的命令
sudo dpkg --info deb_name

查询一个包里包含了哪些文件
sudo dpkg --listfiles 包名
deb结尾
sudo dpkg --contents 包名.deb

查看一个文件或者命令是由哪个包启动的,如/bin/ls
sudo dpkg --search /bin/ls

删除包,这个包一定要是在上面的数据库存在的
sudo dpkg -r 数据库里的包名


apt(Advanced Packaging Tool)
使用apt-get(是一个apt其中一个命令),可以对二进制包和源代码包进行管理
包所在的服务器的地址列表
运行apt-get install时候,首先读取包源地址,就是/etc/apt/sources.list里的地址,然后就下载包,把包下载到
/var/cache/apt/archives,而包的说明信息则会存储到/var/lib/apt/lists,运行apt-cache show package这个命令的获取包的说明信息的时候,去读取/var/lib/apt下的信息就可以获取信息了

显示服务器所有的包
sudo apt-cache pkgnames | less
显示服务器所有的包的个数
sudo apt-cache pkgnames | wc -l 
显示已经安装的包
sudo dpkg -l 
显示已经安装包的个数
sudo dpkg -l | wc -l
安装包
sudo apt-get install
整个过程是自动的,通过刚才地址列表连接服务器,读取服务器描述包的源数据信息,找到包进行下载,下载完解压,然后配置,最后就安装完成了

查看刚才下载后的包
sudo dpkg -l | grep 刚下载的包名
查询包的说明信息
sudo apt-cache show 包名

查询软件包所含文件
apt-file list package
查询命令是由哪个包提供(文件归属),如/bin/ls
apt-file search /bin/ls

由于要查询的命令是由哪个包提供的,是用源数据描述的,源数据是在提供包源的服务器上的,
要用apt-file update 连接,获取源数据信息,将这些信息放到本地的缓存里

查询包的说明信息,一些包安装后在本地会有缓存信息
sudo apt-get show 包名(如果本地缓存有,就用本地的,如果没有,则连接上服务器的信息)
清除缓存
sudo apt-get clean

移除软件
sudo apt-get remove 软件名

自动解决依赖关系,-f参数是试图解决包的依赖关系


ubuntu服务器包含的包并不是所有的,第三方或者个人的包没有,这样的话要下载deb包或者下面所说的PPA

sudo apt-get -f install


ubuntu的服务器并不是包含所有的包,比如个人的包
PPA(Personal Package Archives):
是ubuntu的私人软件仓库,允许用户上传源代码包,由launchpad编译并发布作为apt的仓库
发布成功后,针对这个用户的软件包都有一个PPA地址,用户需要把这个地址添加到用户地址列表了,那么就可以
通过apt安装了

登录launchpad.net,搜索想要安装的包
命令行添加PPA地址:
sudo add-apt-repostiory ppa:user/ppa-name
在/etc/apt/sources.list.d已经生成
sudo apt-get update
同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包这个过程是对/etc/apt/sources.list每一个网址建立索引,这样以后安装找地址就很快了,不用从头开始遍历
然后就可以安装了
sudo apt-get install 包

删除ppa
sudo add-apt-repository --remove ppa:user/ppa-name

如果服务器和ppa上都没有这个包,那么只能手动下载deb包了,然后dpkg安装

0 0
原创粉丝点击