• Ubuntu软件包管理器


    Ubuntu软件包管理

    Ubuntu下对软件管理工具有:apt,dpkg,tasksel,aptitude等,我们常用的就是前三个工具。下面就介绍这三个工具的用法。

    dpkg

    在Linux发展之初,安装软件的时候是需要下载以tar.gz结尾的软件源码包,然后对源码包进行编译安装。这是极其麻烦的使用。后来Debian(Ubuntu是基于Debian系统的)开发了dpkg(Debian Package)管理工具来管理软件,软件都是以deb结尾的编译好的二进制包,通过dpkg命令可以安装软件和卸载软件(CentOS中使用rpm包管理器)。

    dpkg常用命令

    • 安装软件:dpkg -i
    • 移除软件:dpkg -r
    • 查看某个软件包是否已经安装:dpkg -l
    • 查看某个软件包中都包含哪些文件:dpkg -L
    • 查看系统中的某个文件是由哪个软件包提供的: dpkg -S /path/to/file
    • 查看哪些软件包未完成安装:dpkg -C
    • 重置软件配置文件 dpkg-reconfigure

    dpkg是底层的包管理工具,不太常用,最常用的是apt

    apt

    ​ dpkg不够人性化的一点就是不能自动解决依赖问题,比如A软件包依赖于B软件包,那么你先得安装B才能安装A。而且使用dpkg需要将软件下载到本地才能安装。使用apt安装软件时会自动从软件仓库下载软件进行安装,并且apt能自动解决依赖问题,当有依赖的时候它也会自动从软件仓库下载依赖的包进行安装。当然apt底层还是调用dpkg来进行软件安装的。

    apt相关文件

    • /etc/apt/source.list 配置软件包来源,也就是上面说的软件仓库
    • /ect/apt/apt.conf.d 存在apt的零碎配置文件
    • /ect/apt/preferences 制定软件包的版本参数
    • /var/cache/apt/archives 存放已下载的软件包
    • /var/cache/apt/archives/partial 存放正在下载的软件包
    • /var/lib/apt/lists 存放已下载的软件包详细信息

    软件源

    软件源(软件仓库)中存放这大量的软件包,apt会从软件源中下载软件。在/ect/apt/soure.list中可以为apt配置软件源。在这个文件中deb关键字定义已编译的软件包来源,deb-src定义源码包的来源。每一行的格式如下:

    deb(或deb-src) 软件源地址  主版本代号  软件仓库1 软件仓库2 软件仓库3 ...
    

    下面时我的source.list中的内容,我是用的时网易的软件源镜像

    deb http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse
    

    Ubuntu的软件仓库被分为4个部分,分别是main,restricted,universemultiverse

    • main:软件包是自由软件,Ubuntu提供及时性,安全性支持****
    • restricted:不是完全的自由软件,但是由于被广泛使用,所以Ubuntu也提供及时性,安全性支持****
    • universe:一般由社区维护的软件,但Ubuntu不提供安全性的支持
    • multiverse:非自由软件,不被Ubuntu认可,不建议使用

    apt-get 命令

    apt-get 命令一般用于软件包的安装,更新和移除,下面是它的一些常用命令

    命令 功能介绍
    update 将软件仓库中的软件包列表更新到本地,一般我们在安装软件之前需要执行该操作
    upgrade 升级系统中的所有软件包,如果一个软件包在升级时会导致其他已安装的软件包被删除,那么这个软件包将不会被升级
    dist-upgrade 该命令时upgrage的升级版,它会尝试去解决安装时出现冲突,比如会删除已安装的软件包,所以慎用
    remove 卸载软件包(保留配置文件),同时也会卸载依赖于该软件的包,A依赖于B,卸载B时也会卸载A
    install 安装软件包
    source 下载源码包
    clean 删除本地缓存的所有软件安装包
    check 检查是否存在有问题的依赖关系

    当然,在使用apt-get时还可以带一些选项,关于apt-get的详细说明可以查看手册man apt-get

    安装MySQL数据库
    #apt-get install mysql
    
    升级软件
    #apt-get update && apt-get upgrade
    

    apt-cache命令

    apt-cache一般用于软件包查找和显示软件包信息

    当我们安装某个软件包时,但是却不知道具体包名时可以使用apt-cache进行查找

    查找mysql数据库安装包的包名
    # apt-cache search mysql
    
    显示mysql-server(也就是mysql数据库)的安装包信息
    #apt-cache show mysql-server
    

    tasksel

    tasksel命令是用来安装“任务”的,任务就是一些软件的组合,比如LAMP这个任务,就是由apache,php,MySQL等软件包组成,tasksel安装任务就是安装一系列的软件包而已。

    查看系统提供的任务

    # tasksel  --list-tasks
    u manual	Manual package selection
    u dns-server	DNS server
    u edubuntu-desktop-gnome	Edubuntu desktop
    u kubuntu-desktop	Kubuntu desktop
    u kubuntu-full	Kubuntu full
    i lamp-server	LAMP server
    u lubuntu-core	Lubuntu minimal installation
    u lubuntu-desktop	Lubuntu Desktop
    u mail-server	Mail server
    

    上面显示LAMP已经安装

    使用tasksel安装和卸载任务

    安装LAMP
    # tasksel install lamp-server
    
    移除LAMP
    # tasksel remove lamp-server
    
  • 相关阅读:
    学习使用资源文件[4] 用资源中的图片做背景、使用 LoadFromResourceID
    WinAPI: ShellExecute 打开外部程序或文件
    学习使用资源文件[8] 关于 HInstance
    学习使用资源文件[3] 用 Image 显示资源中的图片
    薛定谔之猫_百度百科
    美国创业公司招聘工程师
    Two star programming
    vector 自定义排序
    Data Structures, Algorithms, & Applications in Java Suffix Trees
    Three Star Programmer
  • 原文地址:https://www.cnblogs.com/xidongyu/p/7801897.html
Copyright © 2020-2023  润新知