8_基于Debian和Ubuntu的发行版

lyysharedblogs / 2023-08-02 / 原文

Debian and Ubuntu Based Distros

  1. Linux上的大多数应用程序都是开源的,我们提供了应用程序的源文件,为了在平台上运行它们,我们必须编译源代码或从二进制包安装它。Linux上下文中的二进制包是包含可执行文件的应用程序包,而不是源代码。可执行文件是编译过程的结果。本文将探讨如何使用dpkg管理Ubuntu和其他基于Debian的发行版上的软件应用程序。

  2. Deb是所有基于Debian的发行版使用的安装包格式,实际上这是一个包含其他文件的存档,包括已经编译好了的可执行的应用程序。

    例如,下载一个forlinux 的谷歌浏览器安装包,右键用Archive Manager打开

    img

    我们看到安装包里有三个存档:
    control文件包含有关版本、发布、依赖项等元数据信息。
    data.tar包含可执行文件。

    可以使用不同的可用工具从最低级别执行包管理操作,从命令dpkg到apt到图形前端,如Synaptic。

    dpkg为包管理提供底层基础设施,dpkg数据库包含当前系统上已安装软件的列表,它可以与本地.deb包文件一起使用,并且不了解存储库且不解决依赖关系,就像apt一样。

    其他高级工具(如apt)将在幕后调用dpkg。如果你有一个本地下载的应用程序是一个deb文件,你可以使用dpkg安装它。

    dpkg --info命令显示安装包的信息。

      dpkg --info nameofthefile.deb
    

    dpkg -i安装安装包。

      sudo dpkg -i nameofthefile.deb
    

    dpkg -i一次安装多个安装包,特别是当多个安装包之间有依赖关系时。

    要获取所有已安装软件包的列表,运行:

      sudo dpkg --get-selections
    

    系统上安装的程序列表

    或者你想查看package-version架构和简短描述,使用:

       dpkg-query -l | grep name 
    

    查询结果中的前缀 ii 表示所需状态为'安装',数据包状态是'已安装.

    如果你想查看该安装包安装在系统上的所有文件,可以运行:

       dpkg-query -l | grep name
    
       dpkg -L packagename
    

    如果你想查看特定文件属于哪个包,请使用大写S选项。

    比如想查看ls属于哪个包:

       which -a ls
    
       dpkg -S /bin/ls
    

    coreutils: /bin/ls #可以看到 /bin/ls属于coreutils这个安装包。

    要查看该软件包里的所有其他文件,请运行

       dpkg -L coreutils | less
    

    ...#我们可以看到这个软件包里包含系统cp、mkdir、rm、touch等核心实用程序。

    要删除已安装的安装包,请运行:

       sudo dpkg -r nameofthepackage
    

    同时,删除安装的应用,请运行:

       sudo dpkg -P nameoftheAPP
    

    dpkg是一个低级工具,既不能与存储库一起使用,也不能解决依赖问题,最好使用apt命令。

  3. apt means advanced Package Tool

    在安装应用之前,可用:

     sudo apt update
    

    该命令不会安装新程序,而会更新索引。

    从远程仓库安装多个应用:

     sudo apt install 应用名称1 应用名称2
    

    从本地deb文件安装程序,运行:

     sudo apt 文件完整路径.deb