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帐户,你以前的电脑就会显示出来。

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

apt如何列出所有已经安装的软件包的更多相关文章

  1. 列出 Ubuntu 和 Debian 上已安装的软件包

    列出 Ubuntu 和 Debian 上已安装的软件包 如果你经常用 apt 命令,你可能觉得会有个命令像 apt 一样可以列出已安装的软件包.不算全错. apt-get 命令 没有类似列出已安装软件 ...

  2. Linux 使用 yum 查看安装的软件包

    Linux系统下yum命令查看安装了哪些软件包: $yum list installed //列出所有已安装的软件包 yum针对软件包操作常用命令: 1.使用YUM查找软件包 命令:yum searc ...

  3. linux系统软件安装及软件包管理

    软件包管理 1  RPM软件包管理 1.1  RPM软件包简介: RPM(Red Hat Package Manager,Red Hat软件包管理器)是一种开放的软件包管理系统,按照GPL条款发行,可 ...

  4. pacman 命令(安装所有软件包)

    MSYS2 中pacman安装所有软件包命令: pacman -Sl | awk '{cmd="pacman -S --needed --noconfirm "$2;system( ...

  5. centos 7.0最小化安装 查看yum 所有安装的软件包~

    使用命令 yum list installed [root@localhost ~]# yum list installed 已加载插件:fastestmirror base | 3.6 kB 00: ...

  6. Linux 下安装python软件包(pip、nose、virtualenv、distribute )

    新手刚开始学习Python,目前学习<笨方法学python>ing- 在学习习题46时需要安装几个软件包:pip.nose.virtualenv.distribute !在此记录Linux ...

  7. 路由器安装ubuntu-16.04.1-server-amd64出现“无法安装busybox-initramfs”错误。向目标系统中安装busybox-initramfs软件包时出现一个错误。请检查/var/log/syslog或查看第四虚拟控制台以获得详细

    公司的路由器要ubuntu服务器进行路由网络功能的管理,在安装的时候出现下面的错误提示: 安装ubuntu-16.04.1-server-amd64出现“无法安装busybox-initramfs”错 ...

  8. 如何在Linux中轻松删除源安装的软件包?

    第1步:安装Stow 在这个例子中,我们使用的是CentOS,因此我们需要扩展的EPEL库.您可以使用以下命令安装它们:yum install epel-release然后,下面这段命令:yum in ...

  9. blfs(systemd版本)学习笔记-安装lrzsz软件包实现ssh远程传输文件到lfs系统

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 安装lrzsz软件包实现ssh远程传输文件到lfs系统 这个软件包在lfs系列的书中没有,这里是参照lrzsz官网的说明进行编译 ...

随机推荐

  1. prometheus 配置项注意事项

    1.job:metrics_path 如果是静态模式下配置job(statics),直接配置job的metrics_path选项是不生效的.需要同时在exporter端指定metrics_path.如 ...

  2. 用python实现新词发现程序——基于凝固度和自由度

    互联网时代,信息产生的数量和传递的速度非常快,语言文字也不断变化更新,新词层出不穷.一个好的新词发现程序对做NLP(自然预言处理)来说是非常重要的. N-Gram加词频 最原始的新词算法莫过于n-gr ...

  3. Kinect for Windows SDK开发入门(四):景深数据处理 上

    原文来自:http://www.cnblogs.com/yangecnu/archive/2012/04/04/KinectSDK_Depth_Image_Processing_Part1.html ...

  4. mongodb索引 复合索引

    当我们的查询条件不只有一个时,就需要建立复合索引,比如插入一条{x:1,y:2,z:3}记录,按照我们之前建立的x为1的索引,可是使用x查询,现在想按照x与y的值查询,就需要创建如下的索引     创 ...

  5. 0006SpringBoot中@Configuration与@Bean联合使用

    需求:将某个普通类做为组件注册到容器中,可通过如下办法 1.定义HelloService类 package springboot_test.springboot_test.service; publi ...

  6. - The superclass "javax.servlet.http.HttpServlet" was not found on the Java

    网上有很多解决方法,如这种 下面是具体的解决方法:1.右击web工程->属性或Build Path->Java Build Path->Libraries-> Add Libr ...

  7. hbase实践之数据读取详解

    hbase基本存储组织结构与数据读取组织结构对比 Segment是Hbase2.0的概念,MemStore由一个可写的Segment,以及一个或多个不可写的Segments构成.故hbase 1.*版 ...

  8. hbase实践之Rowkey设计之道

    笔者从一开始接触hbase就在思考rowkey设计,希望rowkey设计得好,能够支持查询的需求.使用hbase一段时间后,再去总结一些hbase的设计方法,无外乎以下几种: reverse salt ...

  9. keil结合st-link使用SWO的两种调试方法笔记

    通过strongerHuang的教程,实现了SWO的两种调试方法, 1.在keil调试的过程中,使用debug printf viewer打印信息, 2.在STM32 ST-LINK Utility中 ...

  10. HDU 3824/ BZOJ 3963 [WF2011]MachineWorks (斜率优化DP+CDQ分治维护凸包)

    题面 BZOJ传送门(中文题面但是权限题) HDU传送门(英文题面) 分析 定义f[i]f[i]f[i]表示在iii时间(离散化之后)卖出手上的机器的最大收益.转移方程式比较好写f[i]=max{f[ ...