리눅스에 설치하는 방법 / 파일에 나열된 패키지를 제거?

경우에 따라서는 다른 서버 목록 서버에 패키지를 설치 할 수 있습니다. 예를 들어, 서버에서 15 개 패키지를 설치하고이 패키지는 또한 서버의 서버 B, C 등으로 설치해야합니다.

우리는 소프트웨어를 수동으로 설치 할 수 있지만 시간이 많이 소요됩니다. 수동으로 두 개의 서버를 설치하지만, 아직 열 서버에 대해이있는 경우 상상할 수있다. 수동으로 작업을 완료 할 수 없습니다이 경우, 다음 우리는 어떻게이 문제를 해결할 수 있습니까?

우리는 당신이이 상황과 시나리오에서 얻을 수 있습니다 걱정하지 마십시오. 우리는 어려움을 극복하기 위해이 문서의 네 가지 방법을 추가했습니다.

나는 또한 다른 배포판에서 작동 할 수 있기를 바랍니다. 그것은 단지 종이 패키지 관리자 명령 줄을 대체 할 공식 패키지 관리자 명령의 석방을 요구한다.

당신이 할 경우 이미 설치된 리눅스 시스템의 패키지 목록을 확인 링크를 클릭하십시오.

당신은 RHEL 시스템을 기반으로 패키지 목록을 만들려면 예를 들어, 다음 절차를 사용하십시오. 다른 배포판도.

  1. # rpm -qa --last|head-15| awk '{print $1}'>/tmp/pack1.txt
  2. #cat/tmp/pack1.txt
  3. mariadb-server-5.5.60-1.el7_5.x86_64
  4. perl-DBI-1.627-4.el7.x86_64
  5. perl-DBD-MySQL-4.023-6.el7.x86_64
  6. perl-PlRPC-0.2020-14.el7.noarch
  7. perl-Net-Daemon-0.48-5.el7.noarch
  8. perl-IO-Compress-2.061-2.el7.noarch
  9. perl-Compress-Raw-Zlib-2.061-4.el7.x86_64
  10. mariadb-5.5.60-1.el7_5.x86_64
  11. perl-Data-Dumper-2.145-3.el7.x86_64
  12. perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64
  13. httpd-2.4.6-88.el7.centos.x86_64
  14. mailcap-2.1.41-2.el7.noarch
  15. httpd-tools-2.4.6-88.el7.centos.x86_64
  16. apr-util-1.5.2-6.el7.x86_64
  17. apr-1.4.8-3.el7_4.1.x86_64

방법 1 : 어떻게 리눅스에서 파일에 나열된 패키지를 설치 cat 명령을 사용하는?

이 목표를 달성하기 위해, 나는 첫 번째 방법은 간단하고 직관적 인 사용합니다. 이렇게하려면 파일을 만들고 설치할 패키지의 목록을 추가합니다.

테스트를 위해, 우리는 파일 이름은 다음의 세 가지 패키지를 추가합니다.

  1. #cat/tmp/pack1.txt
  2. apache2
  3. mariadb-server
  4. nano

간단하게 실행하는 경향이 명령은 우분투 / 데비안 시스템의 모든 패키지를 한 번 설치 될 수 있습니다.

  1. # apt -y install $(cat/tmp/pack1.txt)
  2. Readingpackage lists...Done
  3. Building dependency tree
  4. Reading state information...Done
  5. The following packages were automatically installed and are no longer required:
  6. libopts25 sntp
  7. Use'sudo apt autoremove' to remove them.
  8. Suggested packages:
  9. apache2-doc apache2-suexec-pristine | apache2-suexec-custom spell
  10. The following NEW packages will be installed:
  11. apache2 mariadb-server nano
  12. 0 upgraded,3 newly installed,0 to remove and24not upgraded.
  13. Need to get339 kB of archives.
  14. Afterthis operation,1,377 kB of additional disk space will be used.
  15. Get:1 http://in.archive.ubuntu.com/ubuntu bionic-updates/main amd64 apache2 amd64 2.4.29-1ubuntu4.6 [95.1 kB]
  16. Get:2 http://in.archive.ubuntu.com/ubuntu bionic/main amd64 nano amd64 2.9.3-2 [231 kB]
  17. 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]
  18. Fetched339 kB in19s(18.0 kB/s)
  19. Selecting previously unselected package apache2.
  20. (Reading database ...290926 files and directories currently installed.)
  21. Preparing to unpack .../apache2_2.4.29-1ubuntu4.6_amd64.deb ...
  22. Unpacking apache2 (2.4.29-1ubuntu4.6)...
  23. Selecting previously unselected packagenano.
  24. Preparing to unpack .../nano_2.9.3-2_amd64.deb ...
  25. Unpackingnano(2.9.3-2)...
  26. Selecting previously unselected package mariadb-server.
  27. Preparing to unpack .../mariadb-server_1%3a10.1.38-0ubuntu0.18.04.1_all.deb ...
  28. Unpacking mariadb-server (1:10.1.38-0ubuntu0.18.04.1)...
  29. Processing triggers for ufw (0.36-0ubuntu0.18.04.1)...
  30. Setting up apache2 (2.4.29-1ubuntu4.6)...
  31. Processing triggers for ureadahead (0.100.0-20)...
  32. Processing triggers for install-info(6.5.0.dfsg.1-2)...
  33. Setting up nano(2.9.3-2)...
  34. update-alternatives:using/bin/nano to provide /usr/bin/editor (editor)inauto mode
  35. update-alternatives:using/bin/nano to provide /usr/bin/pico (pico)inauto mode
  36. Processing triggers forsystemd(237-3ubuntu10.20)...
  37. Processing triggers forman-db (2.8.3-2ubuntu0.1)...
  38. Setting up mariadb-server (1:10.1.38-0ubuntu0.18.04.1)...

삭제, 당신은 동일한 명령 형식과 적절한 옵션을 사용합니다.

  1. # apt -y remove $(cat/tmp/pack1.txt)
  2. Readingpackage lists...Done
  3. Building dependency tree
  4. Reading state information...Done
  5. The following packages were automatically installed and are no longer required:
  6. 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
  7. 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 socat
  8. Use'apt autoremove' to remove them.
  9. The following packages will be REMOVED:
  10. apache2 mariadb-server nano
  11. 0 upgraded,0 newly installed,3 to remove and24not upgraded.
  12. Afterthis operation,1,377 kB disk space will be freed.
  13. (Reading database ...291046 files and directories currently installed.)
  14. Removing apache2 (2.4.29-1ubuntu4.6)...
  15. Removing mariadb-server (1:10.1.38-0ubuntu0.18.04.1)...
  16. Removingnano(2.9.3-2)...
  17. update-alternatives:using/usr/bin/vim.tiny to provide /usr/bin/editor (editor)inauto mode
  18. Processing triggers for ufw (0.36-0ubuntu0.18.04.1)...
  19. Processing triggers for install-info(6.5.0.dfsg.1-2)...
  20. Processing triggers forman-db (2.8.3-2ubuntu0.1)...
  1. #yum-y install $(cat/tmp/pack1.txt)

시스템 (예를 CentOS, RHEL (레드햇) 및 OEL (오라클 엔터프라이즈 리눅스)와 같은) RHEL 기반으로 파일에 나열된 패키지를 제거 할 명령을 사용하십시오.

  1. #yum-y remove $(cat/tmp/pack1.txt)
  1. # dnf -y install $(cat/tmp/pack1.txt)

페도라 시스템의 파일에 나열된 패키지를 제거하려면 다음 명령을 사용하십시오.

  1. # dnf -y remove $(cat/tmp/pack1.txt)
  1. # zypper -y install $(cat/tmp/pack1.txt)

오픈 수세 시스템에서 파일에 나열된 패키지를 제거하려면 다음 명령을 사용하십시오.

  1. # zypper -y remove $(cat/tmp/pack1.txt)

다음 사용 팩맨 명령 의 (예 Manjaro 및 Antergos 등) 아치 리눅스를 기반으로 파일 시스템에 나열된 설치 패키지를.

  1. # pacman -S $(cat/tmp/pack1.txt)

아치 리눅스 기반 시스템 (예 : Manjaro 및 Antergos 등)에서 파일에 나열된 패키지를 제거하려면 다음 명령을 사용하십시오.

  1. # pacman -Rs $(cat/tmp/pack1.txt)

방법 2 : 고양이를 사용하고 xargs를 리눅스에서 파일에 나열된 패키지를 설치하는 명령을하는 방법.

이것은 매우 간단하고 직접적인 방법이기 때문에 심지어, 나는이 방법을 사용하는 것을 선호합니다.

다음 사용 apt(예 : 데비안, 우분투 리눅스 민트 등) 데비안 기반 시스템에 나와있는 패키지 파일을 설치 명령을 사용합니다.

  1. #cat/tmp/pack1.txt |xargs apt -y install

다음 사용 apt(예 : 데비안, 우분투 리눅스 민트 등) 데비안 시스템에서 파일에 나열된 패키지를 설치 제거 명령을 기반으로.

  1. #cat/tmp/pack1.txt |xargs apt -y remove

다음 사용하여 yum시스템 (예를 CentOS, RHEL (레드햇) 및 OEL (오라클 엔터프라이즈 리눅스)와 같은) RHEL 기반으로 파일에 나열된 패키지를 설치하는 명령을 사용합니다.

  1. #cat/tmp/pack1.txt |xargsyum-y install

(예를 CentOS, RHEL (레드햇) 및 OEL (오라클 엔터프라이즈 리눅스)와 같은) RHEL 기반으로 시스템에서 파일에 나열된 패키지를 제거 할 명령을 사용하십시오.

  1. #cat/tmp/pack1.txt |xargsyum-y remove

다음 사용 dnf페도라 시스템의 파일에 나열된 패키지를 설치하는 명령을 사용합니다.

  1. #cat/tmp/pack1.txt |xargs dnf -y install

페도라 시스템에서 파일에 나열된 패키지를 제거하려면 다음 명령을 사용하십시오.

  1. #cat/tmp/pack1.txt |xargs dnf -y remove

다음 사용 zypper오픈 수세 시스템에 나와있는 패키지 파일을 설치 명령을 사용합니다.

  1. #cat/tmp/pack1.txt |xargs zypper -y install

오픈 수세 시스템에서 파일에 나열된 패키지를 제거하려면 다음 명령을 사용하십시오.

  1. #cat/tmp/pack1.txt |xargs zypper -y remove

다음 사용 pacman의 (예 Manjaro 및 Antergos로) 아치 리눅스를 기반으로 파일 시스템에 나열된 패키지를 설치하는 명령을 사용합니다.

  1. #cat/tmp/pack1.txt |xargs pacman -S

의 (예 Manjaro 및 Antergos 등) 아치 리눅스를 기반으로 시스템에서 파일에 나열된 명령을 사용하여 제거 패키지에서.

  1. #cat/tmp/pack1.txt |xargs pacman -Rs

방법 세 가지 : For 루프에 나열된 패키지 파일을 사용하는 방법을 리눅스에 설치

우리는 또한 사용할 수 있습니다 for이 목적을 위해 루프 명령을 사용합니다.

벌크 패키지를 설치하면 다음과 같은 사용할 수 있습니다 for사이클 명령을 사용합니다.

  1. #for pack in`cat /tmp/pack1.txt`;do apt -y install $i;done

벌크 패키지를 설치하는 쉘 스크립트를 사용하려면 다음 사용하시기 바랍니다 for주기를.

  1. #vi/opt/scripts/bulk-package-install.sh
  2. #!/bin/bash
  3. for pack in`cat /tmp/pack1.txt`
  4. do apt -y remove $pack
  5. done

하려면 bulk-package-install.sh실행 권한을 설정합니다.

  1. #chmod+ bulk-package-install.sh

마지막으로,이 스크립트를 실행합니다.

  1. # sh bulk-package-install.sh

네 : 리눅스에 설치되어 순환 식 동안 패키지의 파일을 나열하는 방법

우리는 또한 사용할 수있는 while명령 루프의 목적을 달성하기 위해.

벌크 패키지를 설치하면 다음과 같은 사용할 수 있습니다 while사이클 명령을 사용합니다.

  1. #file="/tmp/pack1.txt";while read -r pack;do apt -y install $pack;done<"$file"

벌크 패키지를 설치하는 쉘 스크립트를 사용하려면 다음 사용하시기 바랍니다 while주기를.

  1. #vi/opt/scripts/bulk-package-install.sh
  2. #!/bin/bash
  3. file="/tmp/pack1.txt"
  4. while read -r pack
  5. do apt -y remove $pack
  6. done<"$file"

하려면 bulk-package-install.sh실행 권한을 설정합니다.

  1. #chmod+ bulk-package-install.sh

마지막으로,이 스크립트를 실행합니다.

  1. # sh bulk-package-install.sh

를 통해 : https://www.2daygeek.com/how-to-install-uninstall-listed-packages-from-a-file-in-linux/

저자 : Magesh Maruthamuthu의 주제 : lujun9972의 번역 : 방법-WW의 교정 문 : wxy에

로부터이 문서 LCTT 원래 컴파일러, 리눅스 중국은 자랑스럽게

추천

출처www.linuxidc.com/Linux/2019-06/158988.htm