`apt install pkg1 pkg2`는 `apt install pkg1 && apt install pkg2`와 다릅니다. 이유는 무엇입니까?

`apt install pkg1 pkg2`는 `apt install pkg1 && apt install pkg2`와 다릅니다. 이유는 무엇입니까?

두 패키지를 모두 설치하면 php7.4가 설치됩니다.

$ apt install php7.1 php7.1-redis

The following NEW packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils ifupdown iproute2 isc-dhcp-client isc-dhcp-common libapache2-mod-php7.1 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libargon2-0 libatm1 libbsd0 libdns-export162 libedit2
  libgdbm3 libisc-export160 liblua5.1-0 libmnl0 libpcre2-8-0 libperl5.22 libsodium23 libssl1.1 libxtables11 netbase perl perl-modules-5.22 php-common php-igbinary php-redis php7.1 php7.1-cli php7.1-common php7.1-json php7.1-opcache
  php7.1-readline php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-phpdbg php7.4-readline psmisc rename ssl-cert tzdata

개별적으로 설치하면 php7.4가 설치되지 않습니다.

$ apt install php7.1

The following NEW packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils ifupdown iproute2 isc-dhcp-client isc-dhcp-common libapache2-mod-php7.1 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libatm1 libbsd0 libdns-export162 libedit2 libgdbm3
  libisc-export160 liblua5.1-0 libmnl0 libperl5.22 libssl1.1 libxtables11 netbase perl perl-modules-5.22 php-common php7.1 php7.1-cli php7.1-common php7.1-json php7.1-opcache php7.1-readline psmisc rename ssl-cert tzdata

$ apt install php7.1-redis

The following NEW packages will be installed:
  php-igbinary php-redis

왜? 저는 Linux를 처음 접하는 사람은 아니지만 이러한 동작을 본 적이 없습니다.

그것을 시도하려면 docker를 사용할 수 있습니다.

docker run -it --rm ubuntu:16.04 bash

이러한 패키지에는 추가 ppa가 필요하므로 다음과 같습니다.

apt update && apt install -y software-properties-common
LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php && apt-get update

이제 갈 준비가 되었습니다.

답변1

apt놓치기 쉬운 메시지를 출력하고 힌트를 제공하세요.

참고로 "php7.1-redis" 대신 "php-redis"를 선택하세요.

php7.1-redis존재하지 않거나 오히려 더미 패키지에 의해 제공됩니다 php-redis. 그러니 apt바꿔라

apt install php7.1 php7.1-redis

도착하다

apt install php7.1 php-redis

두 개의 패키지가 동시에 요청되면 apt모든 종속성을 고려하고 이 경우 가상 교체 처리로 인해 중단됩니다. 여러 구체적인 PHP 패키지에서 제공되는 php-redis종속성 선택은 종속성을 충족하는 평가 순서의 첫 번째 패키지입니다. 그것은 또한 해결되었지만 아마도 연결이 다르기 때문에 (PHP 7.4 제공 , PHP 7.1 제공 ) "종속성"이 마침내 충족되었다는 사실을 깨닫지 못했습니다 .phpapi-20190902 | phpapi-20180731 | phpapi-20170718 | phpapi-20160303 | phpapi-20151012 | phpapi-20131226aptphp7.4-cliphp7.1phpapiphpapi-20190902phpapi-20160303php7.1php-redis

php-redis설치 되면 요구 사항 php7.1phpapi충족되었으므로 apt더 이상 아무것도 설치하려고 시도하지 않습니다.

관련 정보