zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    UVA 10617 Again Palindrome
    UVA 10154 Weights and Measures
    UVA 10201 Adventures in Moving Part IV
    UVA 10313 Pay the Price
    UVA 10271 Chopsticks
    Restore DB後設置指引 for maximo
    每行SQL語句加go換行
    种服务器角色所拥有的权限
    Framework X support IPV6?
    模擬DeadLock
  • 原文地址:https://www.cnblogs.com/xidongyu/p/7801897.html
Copyright © 2011-2022 走看看