선택적 설치를 위해 apt --upgradeable에서 관련 패키지를 선택하십시오.

선택적 설치를 위해 apt --upgradeable에서 관련 패키지를 선택하십시오.

데비안을 실행할 때, 업그레이드할 수 있는 많은 패키지를 자주 접하게 됩니다. 우연히 이 작업을 수행 하고 싶지 않기 apt upgrade때문에 "중요하지 않은" 패키지(및 관련 라이브러리 등 - 그룹화)를 먼저 설치한 다음 "중요" 패키지를 살펴보고 싶습니다.

이를 수행하는 해킹 방법은 이 질문의 끝에 있지만 더 나은 방법이 있을 것이라고 확신하며 이 질문이 더 나은 아이디어나 우려를 불러일으킬 수 있습니다.

질문: 하위 그룹의 관련 패키지를 함께 설치하는 방법은 무엇입니까 apt list --upgradeable?

이것이 위 명령의 출력인 경우;

apparmor/testing 2.13.3-5+b1 amd64 [upgradable from: 2.13.3-5]
gir1.2-atk-1.0/testing 2.34.1-1 amd64 [upgradable from: 2.34.0-1]
gir1.2-totem-1.0/testing 3.34.1-2 amd64 [upgradable from: 3.34.0-1+b1]
gjs/testing 1.58.1-1 amd64 [upgradable from: 1.58.0-2]
gnome-calculator/testing 3.34.1-1 amd64 [upgradable from: 3.34.0-1]
graphviz/testing 2.42.2-3 amd64 [upgradable from: 2.40.1-7]
hexchat/testing 2.14.2-5+b1 amd64 [upgradable from: 2.14.2-5]
imagemagick-6.q16/testing 8:6.9.10.23+dfsg-2.1+b2 amd64 [upgradable from: 8:6.9.10.23+dfsg-2.1+b1]
imagemagick/testing 8:6.9.10.23+dfsg-2.1+b2 amd64 [upgradable from: 8:6.9.10.23+dfsg-2.1+b1]
iputils-ping/testing 3:20190709-2 amd64 [upgradable from: 3:20190709-1]
libalgorithm-diff-xs-perl/testing 0.04-5+b2 amd64 [upgradable from: 0.04-5+b1]
libapparmor1/testing 2.13.3-5+b1 amd64 [upgradable from: 2.13.3-5]
libapt-pkg-perl/testing 0.1.36+b2 amd64 [upgradable from: 0.1.36+b1]
libatk-adaptor/testing 2.34.1-1 amd64 [upgradable from: 2.34.0-3]
libatk-bridge2.0-0/testing 2.34.1-1 amd64 [upgradable from: 2.34.0-3]
libatk-bridge2.0-dev/testing 2.34.1-1 amd64 [upgradable from: 2.34.0-3]
libatk1.0-0/testing 2.34.1-1 amd64 [upgradable from: 2.34.0-1]
libatk1.0-data/testing 2.34.1-1 all [upgradable from: 2.34.0-1]
libatk1.0-dev/testing 2.34.1-1 amd64 [upgradable from: 2.34.0-1]
libatk1.0-doc/testing 2.34.1-1 all [upgradable from: 2.34.0-1]
libb-hooks-op-check-perl/testing 0.22-1+b2 amd64 [upgradable from: 0.22-1+b1]
libcairo-gobject-perl/testing 1.005-2+b1 amd64 [upgradable from: 1.005-2]
libcairo-perl/testing 1.106-3+b2 amd64 [upgradable from: 1.106-3+b1]
libcdt5/testing 2.42.2-3 amd64 [upgradable from: 2.40.1-7]
libcgraph6/testing 2.42.2-3 amd64 [upgradable from: 2.40.1-7]
libclass-xsaccessor-perl/testing 1.19-3+b3 amd64 [upgradable from: 1.19-3+b2]
libclone-perl/testing 0.41-1+b2 amd64 [upgradable from: 0.41-1+b1]
libcommon-sense-perl/testing 3.74-2+b8 amd64 [upgradable from: 3.74-2+b7]
libdbd-mysql-perl/testing 4.050-2+b1 amd64 [upgradable from: 4.050-2]
libdbi-perl/testing 1.642-1+b2 amd64 [upgradable from: 1.642-1+b1]
libdevel-callchecker-perl/testing 0.008-1+b1 amd64 [upgradable from: 0.008-1]
libfcgi-perl/testing 0.78-2+b4 amd64 [upgradable from: 0.78-2+b3]
libfile-fcntllock-perl/testing 0.22-3+b6 amd64 [upgradable from: 0.22-3+b5]
libgd-perl/testing 2.71-2+b1 amd64 [upgradable from: 2.71-2]
libgdal-dev/testing 2.4.2+dfsg-1+b3 amd64 [upgradable from: 2.4.2+dfsg-1+b2]
libgdal20/testing 2.4.2+dfsg-1+b3 amd64 [upgradable from: 2.4.2+dfsg-1+b2]
libgjs0g/testing 1.58.1-1 amd64 [upgradable from: 1.58.0-2]
libglib-object-introspection-perl/testing 0.047-1+b1 amd64 [upgradable from: 0.047-1]
libglib-perl/testing 3:1.329.1-1+b1 amd64 [upgradable from: 3:1.329.1-1]
libglib2.0-0/testing 2.62.1-1 amd64 [upgradable from: 2.62.0-3]
libglib2.0-bin/testing 2.62.1-1 amd64 [upgradable from: 2.62.0-3]
libglib2.0-data/testing 2.62.1-1 all [upgradable from: 2.62.0-3]
libglib2.0-dev-bin/testing 2.62.1-1 amd64 [upgradable from: 2.62.0-3]
libglib2.0-dev/testing 2.62.1-1 amd64 [upgradable from: 2.62.0-3]
libglib2.0-doc/testing 2.62.1-1 all [upgradable from: 2.62.0-3]
libgvc6/testing 2.42.2-3 amd64 [upgradable from: 2.40.1-7]
libgvpr2/testing 2.42.2-3 amd64 [upgradable from: 2.40.1-7]
libhtml-parser-perl/testing 3.72-3+b4 amd64 [upgradable from: 3.72-3+b3]
libimage-magick-q16-perl/testing 8:6.9.10.23+dfsg-2.1+b2 amd64 [upgradable from: 8:6.9.10.23+dfsg-2.1+b1]
libio-pty-perl/testing 1:1.08-1.1+b6 amd64 [upgradable from: 1:1.08-1.1+b5]
libjson-xs-perl/testing 4.020-1+b1 amd64 [upgradable from: 4.020-1]
liblab-gamut1/testing 2.42.2-3 amd64 [upgradable from: 2.40.1-7]
libldap-2.4-2/testing 2.4.48+dfsg-1+b1 amd64 [upgradable from: 2.4.48+dfsg-1]
liblinux-epoll-perl/testing 0.016-1+b2 amd64 [upgradable from: 0.016-1+b1]
liblist-moreutils-perl/testing 0.416-1+b5 amd64 [upgradable from: 0.416-1+b4]
liblocale-gettext-perl/testing 1.07-3+b5 amd64 [upgradable from: 1.07-3+b4]
liblz4-1/testing 1.9.1-2 amd64 [upgradable from: 1.8.3-1+b1]
libmagick++-6.q16-8/testing 8:6.9.10.23+dfsg-2.1+b2 amd64 [upgradable from: 8:6.9.10.23+dfsg-2.1+b1]
libmagickcore-6.q16-6/testing 8:6.9.10.23+dfsg-2.1+b2 amd64 [upgradable from: 8:6.9.10.23+dfsg-2.1+b1]
libmagickwand-6.q16-6/testing 8:6.9.10.23+dfsg-2.1+b2 amd64 [upgradable from: 8:6.9.10.23+dfsg-2.1+b1]
libnet-dbus-perl/testing 1.1.0-6+b1 amd64 [upgradable from: 1.1.0-6]
libnet-dns-sec-perl/testing 1.13-1+b1 amd64 [upgradable from: 1.13-1]
libnet-libidn-perl/testing 0.12.ds-3+b2 amd64 [upgradable from: 0.12.ds-3+b1]
libnet-ssleay-perl/testing 1.88-1+b1 amd64 [upgradable from: 1.88-1]
libpango-perl/testing 1.227-3+b2 amd64 [upgradable from: 1.227-3+b1]
libparams-classify-perl/testing 0.015-1+b2 amd64 [upgradable from: 0.015-1+b1]
libpathplan4/testing 2.42.2-3 amd64 [upgradable from: 2.40.1-7]
libperlio-gzip-perl/testing 0.19-1+b6 amd64 [upgradable from: 0.19-1+b5]
libpurple0/testing 2.13.0-2.2+b1 amd64 [upgradable from: 2.13.0-2.2]
libpython2.7-dev/testing 2.7.17~rc1-1 amd64 [upgradable from: 2.7.16-4]
libpython2.7-minimal/testing 2.7.17~rc1-1 amd64 [upgradable from: 2.7.16-4]
libpython2.7-stdlib/testing 2.7.17~rc1-1 amd64 [upgradable from: 2.7.16-4]
libpython2.7/testing 2.7.17~rc1-1 amd64 [upgradable from: 2.7.16-4]
libpython3.7-dev/testing 3.7.5~rc1-2 amd64 [upgradable from: 3.7.5~rc1-1]
libpython3.7-minimal/testing 3.7.5~rc1-2 amd64 [upgradable from: 3.7.5~rc1-1]
libpython3.7-stdlib/testing 3.7.5~rc1-2 amd64 [upgradable from: 3.7.5~rc1-1]
libpython3.7/testing 3.7.5~rc1-2 amd64 [upgradable from: 3.7.5~rc1-1]
libref-util-xs-perl/testing 0.117-1+b2 amd64 [upgradable from: 0.117-1+b1]
libsereal-decoder-perl/testing 4.007+ds-1+b1 amd64 [upgradable from: 4.007+ds-1]
libsereal-encoder-perl/testing 4.007+ds-1+b1 amd64 [upgradable from: 4.007+ds-1]
libsnmp30/testing 5.7.3+dfsg-5+b2 amd64 [upgradable from: 5.7.3+dfsg-5+b1]
libsqlite3-0/testing 3.30.0-1 amd64 [upgradable from: 3.29.0-2]
libsqlite3-dev/testing 3.30.0-1 amd64 [upgradable from: 3.29.0-2]
libsub-name-perl/testing 0.21-1+b4 amd64 [upgradable from: 0.21-1+b3]
libsvn1/testing 1.10.6-1+b1 amd64 [upgradable from: 1.10.6-1]
libterm-readkey-perl/testing 2.38-1+b1 amd64 [upgradable from: 2.38-1]
libtext-charwidth-perl/testing 0.04-9+b1 amd64 [upgradable from: 0.04-9]
libtext-iconv-perl/testing 1.7-6+b2 amd64 [upgradable from: 1.7-6]
libtotem0/testing 3.34.1-2 amd64 [upgradable from: 3.34.0-1+b1]
libtype-tiny-xs-perl/testing 0.016-1+b1 amd64 [upgradable from: 0.016-1]
libunicode-utf8-perl/testing 0.62-1+b1 amd64 [upgradable from: 0.62-1]
libxdot4/testing 2.42.2-3 amd64 [upgradable from: 2.40.1-7]
libxml-libxml-perl/testing 2.0134+dfsg-1+b1 amd64 [upgradable from: 2.0134+dfsg-1]
libxml-parser-perl/testing 2.46-1+b1 amd64 [upgradable from: 2.46-1]
libyaml-libyaml-perl/testing 0.80+repack-2+b1 amd64 [upgradable from: 0.80+repack-2]
libzbar0/testing 0.23-1.1+b1 amd64 [upgradable from: 0.23-1.1]
linux-compiler-gcc-8-x86/testing 5.2.17-1+b1 amd64 [upgradable from: 5.2.17-1]
linux-headers-5.2.0-3-amd64/testing 5.2.17-1+b1 amd64 [upgradable from: 5.2.17-1]
linux-kbuild-5.2/testing 5.2.17-1+b1 amd64 [upgradable from: 5.2.17-1]
linux-libc-dev/testing 5.2.17-1+b1 amd64 [upgradable from: 5.2.17-1]
meson/testing 0.52.0-1 all [upgradable from: 0.51.2-1]
node-yargs-parser/testing 15.0.0-1 all [upgradable from: 14.0.0-2]
openjdk-11-jdk-headless/testing 11.0.5+9-1 amd64 [upgradable from: 11.0.5+6-2]
openjdk-11-jdk/testing 11.0.5+9-1 amd64 [upgradable from: 11.0.5+6-2]
openjdk-11-jre-headless/testing 11.0.5+9-1 amd64 [upgradable from: 11.0.5+6-2]
openjdk-11-jre/testing 11.0.5+9-1 amd64 [upgradable from: 11.0.5+6-2]
openssh-client/testing 1:8.1p1-1 amd64 [upgradable from: 1:8.0p1-7]
openssh-server/testing 1:8.1p1-1 amd64 [upgradable from: 1:8.0p1-7]
openssh-sftp-server/testing 1:8.1p1-1 amd64 [upgradable from: 1:8.0p1-7]
perl-base/testing 5.30.0-6 amd64 [upgradable from: 5.28.1-6]
perl/testing 5.30.0-6 amd64 [upgradable from: 5.28.1-6]
pidgin/testing 2.13.0-2.2+b1 amd64 [upgradable from: 2.13.0-2.2]
python2.7-dev/testing 2.7.17~rc1-1 amd64 [upgradable from: 2.7.16-4]
python2.7-minimal/testing 2.7.17~rc1-1 amd64 [upgradable from: 2.7.16-4]
python2.7/testing 2.7.17~rc1-1 amd64 [upgradable from: 2.7.16-4]
python3.7-dev/testing 3.7.5~rc1-2 amd64 [upgradable from: 3.7.5~rc1-1]
python3.7-minimal/testing 3.7.5~rc1-2 amd64 [upgradable from: 3.7.5~rc1-1]
python3.7/testing 3.7.5~rc1-2 amd64 [upgradable from: 3.7.5~rc1-1]
subversion/testing 1.10.6-1+b1 amd64 [upgradable from: 1.10.6-1]
texinfo/testing 6.6.0.dfsg.1-2+b1 amd64 [upgradable from: 6.6.0.dfsg.1-2]
totem-common/testing 3.34.1-2 all [upgradable from: 3.34.0-1]
totem-plugins/testing 3.34.1-2 amd64 [upgradable from: 3.34.0-1+b1]
totem/testing 3.34.1-2 amd64 [upgradable from: 3.34.0-1+b1]
usb.ids/testing 2019.10.05-1 all [upgradable from: 2019.07.27-1]

먼저 python2와 관련된 모든 것을 업데이트/설치하고 싶습니다. 그래서 나는 이렇게 할 것이다:

 sudo apt-get -s install $(sudo apt list --upgradeable | cut -d " " -f 1 | sed 's/\/[a-z]*$//' | awk '/python3/' | tr "\n" " ")

물론 매번 pipe조각으로 나눌 수도 있고 >파일로 나눌 수도 있습니다.

나는 또한 apt스크립트가 불안정하다고 주장하는 것을 발견했습니다.

물론 apt-get패키지의 "수직 목록"도 허용하는 것 같습니다.

 sudo apt-get -s install $(sudo apt list --upgradeable | cut -d " " -f 1 | sed 's/\/[a-z]*$//' | awk '/python3/')

물론 하나만 사용하세요 sudo. 이것은 제가 자주 하는 일이므로 아마도 더 나은 방법이 있거나 다른 사람들에게도 도움이 될 수 있기를 바랍니다.

추신 : 나는 이것을 생각했습니다apt를 사용하여 불완전한 패키지를 선택하는 방법은 무엇입니까?apt를 사용하여 불완전한 패키지를 선택하는 방법은 무엇입니까?질문은 가깝지만 정확히 내가 원하는 것은 아닙니다.

@Jasen의 답변을 얻으려고 노력 중입니다.apt: 모든 PHP 패키지를 설치합니다.apt-cache search그러나 그것은 수영장에서 가져온 것이지 가 아니라 apt list --upgradeable심지어 그도 그것을 좋아하지 않는 것 같습니다(비록 내가 사용하는 것보다 훨씬 더 우아하지만).

답변1

~처럼페렌츠 바그너 설명하다권장됩니다 aptitude. "업그레이드할 수 있는 모든 것"에 비해 보다 세분화된 패키지 선택을 수행하고 싶을 때마다 이 방법을 사용합니다. 스크립트에서 일치하는 테스트를 작성할 수 있는 사전 정의된 패키지 세트가 없다고 가정하므로 aptitudeTUI는 이러한 종류의 작업에 적합합니다.

기본적으로 "가상" 상태(보안 업데이트, 기타 업그레이드 가능한 패키지, 새 패키지, 설치된 패키지, 설치되지 않은 패키지, 오래된 패키지, 가상 패키지 및 작업, aptitude이를 "상태"라고 함)별로 패키지를 표시하고 각 패키지 상태에서 , 섹션별, 마지막으로 아카이브별입니다. 따라서 오늘의 OpenSSL 업데이트 세트는 다음과 같이 나타납니다.

<code>aptitude</code>의 "보안 업데이트" 아래에 있는 OpenSSL 업데이트를 <code>doc</code>, <code>libdevel</code>, <code>libs</code> 섹션으로 분류한 스크린샷 > , <code>유틸리티</code>

이것은 당신이 추구하는 것과 완전히 일치하지 않지만,aptitude디스플레이는 고도로 맞춤화 가능합니다., 패키지는 소스 패키지 이름이나 관심 있는 패턴(예: 상태, 우선 순위, 소스 패키지)별로 그룹화할 수 있습니다.

보안 업데이트 아래 <code>aptitude</code>의 OpenSSL 업데이트를 우선순위 및 소스 패키지 이름별로 정렬하여 보여 주는 스크린샷

런타임에 보기를 전환하거나( G) aptitude구성 파일에서 원하는 보기를 구성할 수 있습니다.

+업그레이드할 패키지는 관련 업그레이드와 함께 선택되며 aptitude손상된 패키지도 강조 표시됩니다. 따라서 libssl1.1업그레이드만 선택한 후:

업그레이드를 위해 선택된 <code>libssl1.1</code>, 자동으로 선택된 <code>libssl1.1:i386</code> 및 업그레이드로 인해 손상된 <code>libssl-dev</code>를 보여주는 스크린샷

이 시점에서 손상 문제를 해결하기 위해 도움을 요청하거나 aptitude내가 선택한 패키지의 업그레이드를 진행할 수 있습니다. g내가 요청한 모든 것은 그것이 실제로 실행되기 전에 나에게 보여졌습니다. aptitude계속하기 전에 패키지의 변경 로그를 보고 사용 가능한 모든 버전 등을 확인할 수도 있습니다.

이 방법을 사용하면 aptitude(또는)과 관련된 접근 방식의 심각한 단점도 방지할 수 있습니다. 즉, "autoinstall" 플래그를 잃지 않습니다.apt installapt-get install

관련 정보