【Ubuntu 16】DEB软件包管理
一、背景介绍
开源软件最早的时候没有软件包和软件包管理器,用户只能下载源码包自行配置 编译 安装。
后来linux各发行版本推出了软件包格式和软件包管理程序
Red Hat、Centos使用RPM格式,Debian、Ubuntu使用DEB格式
Deb包的命名格式 package_ver-rev_arch.deb package包名 ver版本 rev修订版本 arch软件包对应硬件平台如amd64、i386
由于开源软件分散开发和相互继承的特点,DEB包之间存在着Depends(存在依赖)、Conflicts(存在冲突)、Recommends(建议安装)这三种依赖关系
Ubuntu还支持最新的软件包安装方式SNAP软件包,这种是Ubuntu未来的软件包格式,采用.snap作为拓展名,目前与DEB方式共存
二、管理要点
软件包管理程序分为前端程序(图形化界面工具)和后端程序(命令行)
多数Ubuntu应用程序不止一个DEB软件包组成,安装这些应用时,由软件包管理工具计算依赖关系后从软件仓库下载安装。
需要注意Ubuntu和Debian都使用DEB包软件,但它们的软件仓库并不兼容,Ubuntu和其非官方衍生版本也不通用,即使同是Ubuntu发行版,也需要注意硬件架构。
最新的SNAP不存在依赖关系的问题,但仓库中应用太少。
还有一个软件仓库叫PPA(Personal Package Archives) 个人软件仓库,可以作为官方仓库的扩展
add-apt-repository添加PPA软件仓库,成功添加后需要更新本地软件仓库列表。
三、后端自动化软件包管理工具
1.使用apt-cache apt-get
安装一个软件之前,需要知道默认的软件仓库中有没有这个软件,则会用到软件包查找工具apt-cache和apt-file,apt-cache工具在软件包的描述等信息中搜索指定的关键字,其具体使用格式
搜索软件包是否存在远程仓库
$ sudo apt-cache search keyword
安装软件包
$ sudo apt-get install package_name
重新安装
$ sudo apt-get --reinstall install package_name
删除软件包
$ sudo apt-get remove package_name
删除软件包及配置文件
$ sudo apt-get --purge remove package_name
仅同步更新软件列表
$ sudo apt-get update
根据软件列表更新软件本身
$ sudo apt-get upgrade
更新系统关键软件
$ sudo apt-get dist-upgrade
2.使用aptitude
安装aptitude
sudo apt-get install -y aptitude
命令行启动aptitude界面
搜索软件包
sudo aptitude search package_name
安装软件包
sudo aptitude install package_name
删除软件包
sudo aptitude remove package_name
彻底删除软件包
sudo aptitude purge package_name
更新软件列表
sudo aptitude update
更新软件包
sudo aptitude upgrade
四、虚拟终端 Guake
虚拟终端方面,有一个背景透明界面美观的虚拟终端Guake
sudo apt-get install -y guake
安装后,在bash可以直接调用或者按下F12启用隐藏guake,F11进行半屏\全屏的切换
【Ubuntu 16】DEB软件包管理的更多相关文章
- ubuntu系统的软件包管理工具
ubuntu系统的软件包管理工具有两种,一种是离线管理,另一种是在线管理 1.离线管理 dpkg工具可以对本地存放的deb安装包进行安装,卸载,查看状态等. dpkg -i app_name_vers ...
- Ubuntu下Deb软件包相关安装与卸载
安装deb软件包 sudo dpkg -i xxx.deb 删除软件包 sudo dpkg -r xxx.deb 连同配置文件一起删除 sudo dpkg -r --purge xxx.deb 查看软 ...
- ubuntu 安装 deb 软件包
参考链接地址 blog.csdn.net/kevinhg/article/details/5934462 sudo dpkg -i xxxx.deb 安装一个 Debian 软件包,如你手动下载的文件
- ubuntu 命令行软件包管理
安装软件包 apt-get install vim 卸载 apt-get remove/autoremove vim autoremove 会顺便卸载未使用,未被依赖的软件包 查询或者搜索软件包:: ...
- 【Ubuntu 16】显示管理器lightdm
lightdm是一个全新的轻量级的显示管理器,在Ubuntu16.04上面已经使用. 从图形界面进入到命令行界面 systemctl disable lightdm.service 从命令行进入到图形 ...
- Ubuntu安装deb软件包错误(依赖关系问题)解决
执行命令 sudo dpkg -i XXX.deb 返回依赖关系错误提示 执行 sudo apt-get -f install 这条命令将自动安装需要的依赖包. 再次执行命令 sudo dpkg -i ...
- Ubuntu 16 PPA源管理(查询、添加、修改、删除)
查询 在Ubuntu中,每个PPA源是单独存放在/etc/apt/sources.list.d/文件夹中的,进入到该文件夹,使用ls命令查询即可列出当前系统添加的PPA源. 添加 sudo add-a ...
- liunx 平台下软件包管理
RPM/DPKG 两大阵营简介 在 GNU/Linux( 以下简称 Linux) 操作系统中,RPM 和 DPKG 为最常见的两类软件包管理工具,他们分别应用于基于 RPM 软件包的 Linux 发行 ...
- 【Linux基础】Linux下软件包管理(rpm-deb-yast-yum)
软件包管理是指系统中一种安装和维护软件的方法.通常软件以包的形式存储在仓库(repository)中,能满足许多人所有需要的软件. 在GNU/Linux(以下简称Linux)操作系统中,RPM和DPK ...
随机推荐
- 第四章:Django 模型 —— 设计系统表
1. Django框架提供了完善的模型(Model )层来创建和存储数据,每一个模型对应数据库中的唯一的一张表. 2. Django 模型基础知识: .每一本模型是一个Python类,继承了djang ...
- JS的get和set使用示例
javascript中set与get方法详解 其中get与set的使用方法: 1.get与set是方法,因为是方法,所以可以进行判断. 2.get是得到 一般是要返回的 set 是设置 不用返回 ...
- 小哈学Python第二课:Hello Word
Python入门 1.Hello World 2.Hello World
- 使用TinyXML进行XML操作
本例基于TinyXML实现XML的自动解析和创建,由于本人是菜鸟刚入门,例子中添加了enum.struct.vector.map.list的常见用法,首先添加6个tinyxml工程文件,然后设置调试参 ...
- MFC常见问题以及解决方法(1)_MFC下文本编辑框按下回车后窗口退出
这里主要介绍遇到这种方法的解决方案,解决方法可能有多种,但这里只给出有效的一种,这里不会详细说明出现问题的原因以及为什么这样解决,想了解更多可以百度,写这个主要是防止以后忘记,做个简单的笔记. 问题: ...
- StringBuilder类中的重要方法
下面的API注解包含了StringBuilder类中的重要方法 append(boolean b):将 boolean 参数的字符串表示形式追加到序列. append(char c):将 char 参 ...
- [C++ Calculator 项目] 基础运算实现
Calculator V1.1 注:这是C++计算器项目第二部分-运算 [基于初始部分增改而得] 源文件已上传至github 主要问题: Ⅰ.运算实现的问题在于( ) + - * /的优先级的处理,以 ...
- java服务端和用户端
1.server Logintherad: package com.zdsofe.server; import java.io.InputStream; import java.io.OutputSt ...
- Ztree _ 横向显示子节点、点击文字勾选、去除指定元素input的勾选状态
前些天项目需要树结构表现数据,需求ztree就能满足所以直接使用ztree只是踩了些小坑... 1.ztree子节点横向显示(下图): 效果说明:第三级子节点按需求横向显示其他竖向显示,每行最多显示5 ...
- 感知器算法--python实现
写在前面: 参考: 1 <统计学习方法>第二章感知机[感知机的概念.误分类的判断] http://pan.baidu.com/s/1hrTscza 2 点到面的距离 3 梯度 ...