• ubuntu:软件包


    了解ubuntu的软件包格式

    ubuntu软件包格式为DEB格式,这个格式最早是由Debian开发采用,ubuntu由Debian分支发展而来,从而继承了这种软件包格式。

    DEB软件包可以分为两类:

    • 扩展名为DEB的二进制软件包
    • 源码软件包
      通常包含扩展名为.dsc 的源码描述文件、一个扩展名为.orig.tar.gz的源码包、一个扩展名为.diff.gz的源码补丁文件。

    DEB软件包的命名格式为:package_ver-rev_arch.deb
    其中package为软件包的名字,ver代表版本,rev代表修订版本,arch代表软件包对应的硬件平台
    在这里插入图片描述

    由于开源软件的分散开发与相互继承的特点,DEB软件包之间存在相互依赖的关系,常见的依赖关系有:

    • Depends
    • Conflict
    • Recommends

    如果两个软件包A与B相互依赖(Depends),则安装A时也要安装B(知道为啥要装依赖了 AoA )
    如果两个软件包相互矛盾(Conflict)则,A与B不能共存
    推荐(Recommends)关系代表开发者推荐用户在安装A时也安装B

    ubuntu 16.04支持了最新的SNAP软件包格式,SNAP软件包格式是ubuntu未来的格式,以.snap作为扩展名,其优势是没有复杂的依赖关系,并且与操作系统隔离。可以通过snapcraft工具将现有的DEB软件包转化为SNAP格式,并创建SNAP程序。(之前给服务器装nextcloud用的就是这种格式的软件包,现在知道是啥了)


    软件包管理程序

    软件包管理程序可以分为前端与后端。ubuntu之前的软件管理中心,和现在的Ubuntu software都是前端程序,前端程序依赖后端程序,如dpkg、apt-cache、apt-get等来实现安装、解决依赖关系、升级、卸载等操作。


    ubuntu软件仓库管理

    软件仓库又称为软件源,通常位于线上如ubuntu官方的在线软件库,还有许多镜像(Mirror).也有保存在光盘上的软件仓库。
    第三方非开源的应用程序是无法包含在ubuntu的软件仓库,因为不符合ubuntu软件仓库协议,可以通过Cannonical合作伙伴解决,如图
    在这里插入图片描述
    如图在软件与更新中勾选红框,退出时点yes更新软件仓库,这样软件仓库内就包含很多常用但不符合ubuntu软件仓库协议的应用程序了。
    需要注意ubuntu与Debian的软件仓库和非官方衍生版本的软件仓库不通用、不兼容。同是ubuntu发行版本也需要注意硬件架构(32位还是64为)和版本号,完全匹配才能共用软件仓库。

    PPA软件仓库(personal package archives)是个人软件包文档的缩写,是由第三方开发者在线打包和发布软件仓库(launchpad.net),最新的软件更新先出现在PPA软件仓库。
    命令行下可以使用add-apt-repository命令添加PPA仓库


    ubuntu软件包后端管理工具

    dpkg 是最底层的软件包后端管理工具,apt-get 与 aptitude可以调用dpkg,

    dpkg是ubuntu软件包管理工具的基础,使用dpkg工具可以实现软件包的安装、卸载、查询、编译、打包等功能。
    dpkg命令格式为:

    dpkg [-i | -r | -P | -l | -L | -s | -S] package_name
    
    • -i :安装软件包

    • -r :卸载软件包但是不删除软件包的配置文件

    • -P : 完全卸载软件包,包括所有相关的配置文件

    • -l :查看当前系统已安装软件包的信息

    • -L:查看当前系统中指定软件包所安装的相关文件

    • -s:查看已安装的指定软件包的详细信息

    • -S:查看系统中某个文件所属的软件包

    • -c: 查看软件包所包含的内容

    • -I :查看软件包的详细信息

    • 重新配置一个已经安装的软件包,多用于安装某个软件包失败后
      sudo dpkg-reconfigure package_name
      不建议使用dpkg直接安装DEB软件包,因为它无法自动解决软件包复杂的依赖关系。


    后端自动化软件包管理工具

    后端自动化软件包管理工具有apt-cache/apt-get、aptitude、tasksel。

    • apt-cathe:用来查询软件仓库的软件包信息;
    sudo apt-cache search keyword # 在软件仓库搜索指定关键字的软件包
    
    • apt-get:主要根据软件包名称进行安装;
    sudo apt-get search package_name # 搜索软件包
    
    sudo apt-get install package_name # 安装软件包
    
    sudo apt-get remove package_name# 删除软件包
    
    sudo apt-get --purge remove package_name# 彻底删除
    
    sudo apt-get update # 更新软件仓库列表
    

    update仅更新软件列表

    sudo apt-get upgrade#更新软件包
    

    upgrade根据列表更新软件本身

    • aptitude:可以解决复杂的依赖关系
    sudo apt-get install -y aptitude # 安装aptitude -y表示安装时不询问
    
    sudo aptitude # 启动文本界面,j、k键或方向键移动
    
    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# 更新软件包
    
    • tasksel:用于一次性安装一组软件包
      执行一组预定义的安装指令集,适合安装LAMP组合、各种桌面环境
    sudo apt-get install tasksel # 安装tasksel
    
    tasksel --list-task # 列出可选安装任务
    
    sudo tasksel install lubuntu-core# 执行安装任务
    
    sudo tasksel #进入文本界面
    
    sudo tasksel remove lubuntu-core # 卸载
    

    添加和删除PPA软件仓库

    • 使用命令行
      1、获取想要添加的PPA软件源的地址:ppa:ppsspp/stable
      2、添加PPA软件仓库:sudo add-apt-repository ppa:ppsspp/stable
      3、让PPA软件仓库生效:sudo aptitude update
      4、在上一步之后就可以搜索到ppsspp了:sudo aptitude search ppsspp,之后就可以进行安装了
      卸载过程如下
      1、卸载PPSSPP:sudo aptitude purge -y ppsspp
      2、删除已经添加的软件仓库:sudo add-repository -r ppa:ppsspp/stable# -r表示删除定制的软件仓库
      3、更新软件仓库:sudo aptitude update

    SNAP软件包的使用

    1、浏览SNAP应用

    snap find
    

    在这里插入图片描述
    2、搜索应用

    snap find app_name
    

    3、安装应用

    sudo snap install app_name
    

    4、更新应用

    sudo snap refresh app_name
    

    5、删除应用

    sudo snap remove app_name
    

    6、列出所有安装应用

    snap list
    
  • 相关阅读:
    正则表达式--断言
    ie6兼容性处理
    git log 高级用法
    html-文件上传设置accept类型延时问题
    sublime text3 -- JavaScript Completions
    Git进行fork后如何与原仓库同步
    Redis的数据结构及应用场景
    PHP手册-函数参考-日期与时间相关扩展
    什么是缓存
    MySQL的连接方式、事务、性能优化
  • 原文地址:https://www.cnblogs.com/PythonFCG/p/13860088.html
Copyright © 2020-2023  润新知