• Linux学习笔记(一)----Ubuntu下的apt命令


    一、原理与目录

    先介绍几个和apt-get相关的目录:

    /var/lib/dpkg/available
    文件的内容是软件包的描述信息, 该软件包括当前系统所使用的 Debian 安装源中的所有软件包,其中包括当前系统中已安装的和未安装的软件包.

    /var/cache/apt/archives
    目录是在用 apt-get install 安装软件时,软件包的临时存放路径

    /etc/apt/sources.list
    存放的是软件源站点, 当你执行 sudo apt-get install xxx 时,Ubuntu 就去这些站点下载软件包到本地并执行安装

    /var/lib/apt/lists
    使用apt-get update命令会从/etc/apt/sources.list中下载软件列表,并保存到该目录

    APT工作原理:

    Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类地存放在软件仓库中,进行有效地组织和管理。然后,将软件仓库置于许许多多的镜像服务器中,并保持基本一致。这样,所有的Ubuntu用户随时都能获得最新版本的安装软件包。因此,对于用户,这些镜像服务器就是他们的软件源(Reposity)。

    然而,由于每位用户所处的网络环境不同,不可能随意地访问各镜像站点。为了能够有选择地访问,在Ubuntu系统中,使用软件源配置文件/etc/apt/sources.list列出最合适访问的镜像站点地址。

    apt-get的更新过程:
    执行apt-get update
    程序分析/etc/apt/sources.list
    自动连网寻找list中对应的Packages/Sources/Release列表文件,如果有更新则下载之,存入/var/lib/apt/lists/目录
    然后 apt-get install 相应的包 ,下载并安装。

    即使这样,软件源配置文件只是告知Ubuntu系统可以访问的镜像站点地址,但那些镜像站点具体都拥有什么软件资源并不清楚。若每安装一个软件包,就在服务器上寻找一遍,效率是很低的。因而,就有必要为这些软件资源列个清单(建立索引文件),以便本地主机查询。

    apt-get install 下载的软件存放到 /var/cache/apt/archives/下。

    同时,APT能够检查Ubuntu Linux系统中的软件包依赖关系,大大简化了Ubuntu用户安装和卸载软件包的过程。

    apt-get install原理:
    deb http://cn.archive.ubuntu.com/ubuntu/ precise main restricted

    可通过浏览器找到

    apt-get 每次都会读取这个文件,从而获取的包的信息。从Packages.gz中获取到所有包的信息。Packages.gz中包含的信息有:

    包名,优先级,类型,维护者,架构,源文件(source),版本号,依赖包,冲突性信息,包大小,文件的下载路径,MD5sum,SHA1,包描述,Xul-Appid—应用程序id,Bugs信息,Origin,Supported

    Packages中的一个包信息实例:

    Package: abrowser
    Priority: optional
    Section: web
    Installed-Size: 153
    Maintainer: Ubuntu Mozilla Team <ubuntu-mozillateam@lists.ubuntu.com>
    Architecture: amd64
    Source: firefox
    Version: 11.0+build1-0ubuntu4
    Depends: firefox (>= 9.0)
    Filename: pool/main/f/firefox/abrowser_11.0+build1-0ubuntu4_amd64.deb
    Size: 8940
    MD5sum: e8781af38a6de76126d190fc10a14bf2
    SHA1: 408abd5f960d4b02bc18581df348954eb7620772
    SHA256: cdfad0e4435c035b3115bdec08d79ccfc68bf9480e89df9270b3b6befa348699
    Description: Safe and easy web browser from Mozilla – transitional package
    Description-md5: e89058e4775caff7d26313fa8811675e
    Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    Origin: Ubuntu
    Supported: 18m

    从这个信息段中可以看出来,实际的deb包放在pool/main/f/firefox/abrowser_11.0+build1-0ubuntu4_amd64.deb,通过浏览器同样可以找到。从中也可以看到Depends一项中的依赖需求。

    二、命令常用方式

    apt和apt-get命令之间的区别

    虽然 apt 与 apt-get 有一些类似的命令选项,但它并不能完全向下兼容 apt-get 命令。也就是说,可以用 apt 替换部分 apt-get 系列命令,但不是全部。

    apt 命令取代的命令命令的功能
    apt install apt-get install 安装软件包
    apt remove apt-get remove 移除软件包
    apt purge apt-get purge 移除软件包及配置文件
    apt update apt-get update 刷新存储库索引
    apt upgrade apt-get upgrade 升级所有可升级的软件包
    apt autoremove apt-get autoremove 自动删除不需要的包
    apt full-upgrade apt-get dist-upgrade 在升级软件包时自动处理依赖关系
    apt search apt-cache search 搜索应用程序
    apt show apt-cache show 显示安装细节

    当然,apt 还有一些自己的命令:

    新的apt命令命令的功能
    apt list 列出包含条件的包(已安装,可升级等)
    apt edit-sources 编辑源列表

    需要大家注意的是:apt 命令也还在不断发展, 因此,你可能会在将来的版本中看到新的选项。

  • 相关阅读:
    原型模式 prototype
    OOAD之单例模式Singleton的6种写法
    OOAD之创建型模式之工厂模式
    OOAD之面向对象设计原则
    第一章 面向对象软件工程与UML
    Oracle数据库之PL/SQL触发器
    Oracle数据库之开发PL/SQL子程序和包
    Oracle数据库中的分页--rownum
    Oracle数据库之FORALL与BULK COLLECT语句
    Oracle数据库 中的基础的一些语法结构
  • 原文地址:https://www.cnblogs.com/xietianjiao/p/10175051.html
Copyright © 2020-2023  润新知