zoukankan      html  css  js  c++  java
  • apt如何列出所有已经安装的软件包

    apt如何列出所有已经安装的软件包

    转 https://www.helplib.com/ubuntu/article_155294

    问题:

    我想将所有已安装软件包的列表输出到文本文件中,以便我可以查看它并在另一个系统上批量安装。 我该怎么做?


    回答 1:

    Ubuntu 14.04及以上版本

    Ubuntu 14.04及更高版本上的apt工具使这很容易。

    
    apt list --installed
    
    
    
    旧版本

    要获取在本地安装的软件包列表,请在你的终端中执行这里操作:

    
    dpkg --get-selections | grep -v deinstall
    
    
    

    -v 标记"反转"grep返回不匹配行)

    要获取安装的特定软件包的列表:

    
    dpkg --get-selections | grep postgres
    
    
    

    要将该列表保存到你的桌面上名为 packages的文本文件,请在你的终端中执行这里操作:

    
    dpkg --get-selections | grep -v deinstall> ~/Desktop/packages
    
    
    

    或者,只需使用

    
    dpkg -l
    
    
    

    ( 你不需要将这些命令作为超级用户运行,所以不需要 sudo 或者它的他任何它的他变量)


    回答 2:

    要获得明确安装的软件包(不仅仅是作为依赖项安装),您可以运行

    
    aptitude search '~i!~M'

    这将包括一个简短的描述,你可能希望。 如果没有,还要添加选项-F '%p ',如karthick87所述。

    然而,另一个选项似乎是复制文件 /var/lib/apt/extended_states,它是以这种格式的文本文件数据库:

    
    Package: grub-common
    
    
    Architecture: amd64
    
    
    Auto-Installed: 0
    
    
    
    Package: linux-headers-2.6.35-22-generic
    
    
    Architecture: amd64
    
    
    Auto-Installed: 1

    Auto-Installed: 0 指示软件包已经明确安装,并且不只是一个依赖项。


    回答 3:

    创建当前安装的软件包的备份:

    
    dpkg --get-selections> list.txt
    
    
    

    然后从该列表中还原( 在另一个系统上):

    
    dpkg --clear-selections
    
    
    sudo dpkg --set-selections <list.txt
    
    
    

    要删除过时的软件包:

    
    sudo apt-get autoremove
    
    
    

    要在备份时安装( 例如。 要安装由 dpkg --set-selections 设置的软件包):

    
    sudo apt-get dselect-upgrade
    
    
    

    回答 4:

    要通过apt命令列出有意安装的所有软件包(而不是依赖项),请运行以下命令:

    
    (zcat $(ls -tr/var/log/apt/history.log*.gz); cat/var/log/apt/history.log) 2>/dev/null |
    
    
     egrep '^(Start-Date:|Commandline:)' |
    
    
     grep -v aptdaemon |
    
    
     egrep '^Commandline:'

    这提供了基于时间的反向视图,其中列出了较早的命令:

    
    Commandline: apt-get install k3b
    
    
    Commandline: apt-get install jhead
    
    
    ...

    安装数据也显示一样使用,但没有详细信息(与安装日期相同):

    
    (zcat $(ls -tr/var/log/apt/history.log*.gz); cat/var/log/apt/history.log) 2>/dev/null |
    
    
     egrep '^(Start-Date:|Commandline:)' |
    
    
     grep -v aptdaemon |
    
    
     egrep -B1 '^Commandline:'

    提供以下内容:

    
    Start-Date: 2012-09-23 14:02:14
    
    
    Commandline: apt-get install gparted
    
    
    Start-Date: 2012-09-23 15:02:51
    
    
    Commandline: apt-get install sysstat
    
    
    ...

    回答 5:

    
    apt-mark showmanual
    
    
    

    手册状态:

    将打印手动安装的软件包列表

    因此,它应该只提供显式安装的软件包列表(尽管这包括作为默认初始安装的一部分的软件包),但由于安装了这些软件包,因此不包含所有依赖项。

    要将结果输出到文本文件中:

    
    apt-mark showmanual> list-installed.txt
    
    
    

    回答 6:

    dpkg-query ( 代替 dpkg --get-selections,它列出了一些未安装的包) 如下:

    
    dpkg-query -W -f='${PackageSpec} ${Status}n' | grep installed | sort -u | cut -f1 -d> installed-pkgs
    
    
    

    或者:

    
    dpkg -l | grep ^ii | sed 's_ _t_g' | cut -f 2> installed-pkgs
    
    
    

    回答 7:

    列出所有已经安装的软件包,

    
    dpkg -l |awk '/^[hi]i/{print $2}'> 1.txt

    或者

    
    aptitude search -F '%p' '~i'> 1.txt

    或者

    
    dpkg --get-selections> 1.txt

    备注:
    你将在主文件夹中获得 1. txt 文件,或者你可以指定自己的路径。


    回答 8:

    你可以使用Synaptic保存已经安装软件包的当前状态。 在Synaptic中,选择“file / save markings ”,输入要保存状态的文件的名称,并确保检查“保存完整状态,而不仅仅是更改”框。

    可以使用Synaptic中的“file / read markings ”将从此保存的文件加载到新计算机中。


    回答 9:

    我建议使用blueprint 虽然它是为服务器设计的,但也可以从桌面中使用。 它将创建一个 shell script/chef/puppet,你可以使用它来安装所有软件包。


    回答 10:

    您想在12.04重新安装软件包,对吧?

    如果是这样就很容易。 你需要一个“Ubuntu Single Sign On帐户。”(在重新安装之前创建它以便系统同步。)

    • 转到软件中心,在“文件”菜单下查找“计算机之间的同步... ”选项。

    • 点击它,你会看到你的电脑注册和你电脑上所有应用的列表。

    • 安装新计算机时,计算机将被视为新计算机。

    • 你只需要登录你的Ubuntu帐户,你以前的电脑就会显示出来。

    • 点击它,你会得到所有应用的列表。 在要安装的应用程序上选择"安装"。

  • 相关阅读:
    题解——草莓(树上切割)
    题解——碰杯
    SCOI2019凉凉记
    题解rotinv
    矩阵快速幂
    质数及线性筛
    题解[ZJOI2007]矩阵游戏
    【实验舱国庆营模拟】Day3 A.code
    【实验舱国庆营模拟】Day2 A.divide
    【纪中集训2019.08.25】【JZOJ6371】树
  • 原文地址:https://www.cnblogs.com/it-tsz/p/11107510.html
Copyright © 2011-2022 走看看