当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Linux 上安装/卸载一个文件中的软件包

    栏目:Linux/apache问题 时间:2019-11-15 13:04

      如果你希望在一台服务器上将软件包列表安装到另一台服务器上。例如,您已经在服务器A上安装了15个软件包,并且还需要在服务器B上安装这些软件包、服务器C,依此类推。
      其实可以手动安装这些软件,但这会花费很多时间。您可以手动安装一台或两台服务器,但是假设您有大约十台服务器。在这种情况下,您将无法手动进行工作,那么如何解决问题呢?
      不用担心,我们可以帮助您摆脱这种情况。我们添加了四种方法来克服本文中的困难。
      希望这可以帮助您解决问题。我已经在Centos7和Ubuntu 18.04上测试了这些命令。
      我也希望这可以在其他发行版上使用。这仅需要用此发行版的官方程序包管理器命令替换本文中的程序包管理器命令。
      如果要检查Linux系统上已安装软件包的列表,请单击链接。
      例如,如果要在基于RHEL的系统上创建软件包列表,请使用以下步骤。其他发行版也是如此。
      # rpm -qa --last | head -15 | awk '{print $1}' > /tmp/pack1.txt# cat /tmp/pack1.txtmariadb-server-5.5.60-1.el7_5.x86_64perl-DBI-1.627-4.el7.x86_64perl-DBD-MySQL-4.023-6.el7.x86_64perl-PlRPC-0.2020-14.el7.noarchperl-Net-Daemon-0.48-5.el7.noarchperl-IO-Compress-2.061-2.el7.noarchperl-Compress-Raw-Zlib-2.061-4.el7.x86_64mariadb-5.5.60-1.el7_5.x86_64perl-Data-Dumper-2.145-3.el7.x86_64perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64httpd-2.4.6-88.el7.centos.x86_64mailcap-2.1.41-2.el7.noarchhttpd-tools-2.4.6-88.el7.centos.x86_64apr-util-1.5.2-6.el7.x86_64apr-1.4.8-3.el7_4.1.x86_64
      方法一:如何在 Linux 上使用 cat 命令安装文件中列出的包?
      为实现这个目标,我将使用简单明了的第一种方法。为此,创建一个文件并添加上你想要安装的包列表。
      出于测试的目的,我们将只添加以下的三个软件包名到文件中。
      # cat /tmp/pack1.txtapache2mariadb-servernano
      只要简单的运行 apt 命令 就能在 Ubuntu/Debian 系统上一次性安装所有的软件包。
      # apt -y install $(cat /tmp/pack1.txt)Reading package lists... DoneBuilding dependency treeReading state information... DoneThe following packages were automatically installed and are no longer required: libopts25 sntpUse 'sudo apt autoremove' to remove them.Suggested packages: apache2-doc apache2-suexec-pristine | apache2-suexec-custom spellThe following NEW packages will be installed: apache2 mariadb-server nano0 upgraded, 3 newly installed, 0 to remove and 24 not upgraded.Need to get 339 kB of archives.After this operation, 1,377 kB of additional disk space will be used.Get:1 http://in.archive.ubuntu.com/ubuntu bionic-updates/main amd64 apache2 amd64 2.4.29-1ubuntu4.6 [95.1 kB]Get:2 http://in.archive.ubuntu.com/ubuntu bionic/main amd64 nano amd64 2.9.3-2 [231 kB]Get:3 http://in.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 mariadb-server all 1:10.1.38-0ubuntu0.18.04.1 [12.9 kB]Fetched 339 kB in 19s (18.0 kB/s)Selecting previously unselected package apache2.(Reading database ... 290926 files and directories currently installed.)Preparing to unpack .../apache2_2.4.29-1ubuntu4.6_amd64.deb ...Unpacking apache2 (2.4.29-1ubuntu4.6) ...Selecting previously unselected package nano.Preparing to unpack .../nano_2.9.3-2_amd64.deb ...Unpacking nano (2.9.3-2) ...Selecting previously unselected package mariadb-server.Preparing to unpack .../mariadb-server_1%3a10.1.38-0ubuntu0.18.04.1_all.deb ...Unpacking mariadb-server (1:10.1.38-0ubuntu0.18.04.1) ...Processing triggers for ufw (0.36-0ubuntu0.18.04.1) ...Setting up apache2 (2.4.29-1ubuntu4.6) ...Processing triggers for ureadahead (0.100.0-20) ...Processing triggers for install-info (6.5.0.dfsg.1-2) ...Setting up nano (2.9.3-2) ...update-alternatives: using /bin/nano to provide /usr/bin/editor (editor) in auto modeupdate-alternatives: using /bin/nano to provide /usr/bin/pico (pico) in auto modeProcessing triggers for systemd (237-3ubuntu10.20) ...Processing triggers for man-db (2.8.3-2ubuntu0.1) ...Setting up mariadb-server (1:10.1.38-0ubuntu0.18.04.1) ...
      至于删除,需要使用相同的命令格式和适当的选项。
      # apt -y remove $(cat /tmp/pack1.txt)Reading package lists... DoneBuilding dependency treeReading state information... DoneThe following packages were automatically installed and are no longer required: apache2-bin apache2-data apache2-utils galera-3 libaio1 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libconfig-inifiles-perl libdbd-mysql-perl libdbi-perl libjemalloc1 liblua5.2-0 libmysqlclient20 libopts25 libterm-readkey-perl mariadb-client-10.1 mariadb-client-core-10.1 mariadb-common mariadb-server-10.1 mariadb-server-core-10.1 mysql-common sntp socatUse 'apt autoremove' to remove them.The following packages will be REMOVED: apache2 mariadb-server nano0 upgraded, 0 newly installed, 3 to remove and 24 not upgraded.After this operation, 1,377 kB disk space will be freed.(Reading database ... 291046 files and directories currently installed.)Removing apache2 (2.4.29-1ubuntu4.6) ...Removing mariadb-server (1:10.1.38-0ubuntu0.18.04.1) ...Removing nano (2.9.3-2) ...update-alternatives: using /usr/bin/vim.tiny to provide /usr/bin/editor (editor) in auto modeProcessing triggers for ufw (0.36-0ubuntu0.18.04.1) ...Processing triggers for install-info (6.5.0.dfsg.1-2) ...Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
      使用 yum 命令 在基于 RHEL (如 Centos、RHEL (Redhat) 和 OEL (Oracle Enterprise Linux)) 的系统上安装文件中列出的软件包。
      # yum -y install $(cat /tmp/pack1.txt)
      使用以命令在基于 RHEL (如 Centos、RHEL (Redhat) 和 OEL (Oracle Enterprise Linux)) 的系统上卸载文件中列出的软件包。
      # yum -y remove $(cat /tmp/pack1.txt)
      使用以下 dnf 命令 在 Fedora 系统上安装文件中列出的软件包。
      # dnf -y install $(cat /tmp/pack1.txt)
      使用以下命令在 Fedora 系统上卸载文件中列出的软件包。
      # dnf -y remove $(cat /tmp/pack1.txt)
      使用以下 zypper 命令 在 openSUSE 系统上安装文件中列出的软件包。
      # zypper -y install $(cat /tmp/pack1.txt)
      使用以下命令从 openSUSE 系统上卸载文件中列出的软件包。
      # zypper -y remove $(cat /tmp/pack1.txt)
      使用以下 pacman 命令 在基于 Arch Linux (如 Manjaro 和 Antergos) 的系统上安装文件中列出的软件包。
      # pacman -S $(cat /tmp/pack1.txt)
      使用以下命令从基于 Arch Linux (如 Manjaro 和 Antergos) 的系统中卸载文件中列出的软件包。
      # pacman -Rs $(cat /tmp/pack1.txt)
      方法二:如何使用 cat 和 xargs 命令在 Linux 中安装文件中列出的软件包。
      甚至,我更喜欢使用这种方法,因为这是一种非常简单直接的方法。
      使用以下 apt 命令在基于 Debian 的系统 (如 Debian、Ubuntu 和 Linux Mint) 上安装文件中列出的软件包。
      # cat /tmp/pack1.txt | xargs apt -y install
      使用以下 apt 命令 从基于 Debian 的系统 (如 Debian、Ubuntu 和 Linux Mint) 上卸载文件中列出的软件包。
      # cat /tmp/pack1.txt | xargs apt -y remove
      使用以下 yum 命令在基于 RHEL (如 Centos,RHEL (Redhat) 和 OEL (Oracle Enterprise Linux)) 的系统上安装文件中列出的软件包。
      # cat /tmp/pack1.txt | xargs yum -y install
      使用以命令从基于 RHEL (如 Centos、RHEL (Redhat) 和 OEL (Oracle Enterprise Linux)) 的系统上卸载文件中列出的软件包。
      # cat /tmp/pack1.txt | xargs yum -y remove
      使用以下 dnf 命令在 Fedora 系统上安装文件中列出的软件包。
      # cat /tmp/pack1.txt | xargs dnf -y install
      使用以下命令从 Fedora 系统上卸载文件中列出的软件包。
      # cat /tmp/pack1.txt | xargs dnf -y remove
      使用以下 zypper 命令在 openSUSE 系统上安装文件中列出的软件包。
      # cat /tmp/pack1.txt | xargs zypper -y install
      使用以下命令从 openSUSE 系统上卸载文件中列出的软件包。
      # cat /tmp/pack1.txt | xargs zypper -y remove
      使用以下 pacman 命令在基于 Arch Linux (如 Manjaro 和 Antergos) 的系统上安装文件中列出的软件包。
      # cat /tmp/pack1.txt | xargs pacman -S
      使用下以命令从基于 Arch Linux (如 Manjaro 和 Antergos) 的系统上卸载文件中列出的软件包。
    总结:
      以上就是全部内容了,更多资讯,敬请关注iis7站长之家!