Debian 8.11에서 마이너 업그레이드를 메이저 업그레이드로 수행할 수 없습니다.

Debian 8.11에서 마이너 업그레이드를 메이저 업그레이드로 수행할 수 없습니다.

Debian 8.11 Jessie가 설치된 VPS를 업그레이드하려고 합니다. 주요 업그레이드를 수행하려면 마이너 업그레이드를 먼저 수행합니다. 나는 다음을 수행했으며 이것이 일반적인 경로라는 것을 알고 있습니다.

sudo apt-get update
sudo apt-get upgrade
sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list
sudo apt-get update

모든 것이 잘 진행되면 다음을 실행합니다.

sudo apt-get upgrade

다음 오류가 발생합니다.

The following packages have unmet dependencies:
 libmariadb3 : Breaks: libmariadbclient18 (< 1:10.3.12-2) but 10.1.37-0+deb9u1 is to be installed
 libssl1.1 : Breaks: python-httplib2 (< 0.11.3-1) but 0.9.2+dfsg-1 is to be installed
E: Broken packages

삭제를 시도했지만 python-httplib2평소처럼 apt시스템에서 중요한 패키지를 제거하려고 하면 시스템이 영구적으로 손상될 수 있습니다. 이 패키지에 대해서는 모르지만 libmariadb3프로덕션 웹 사이트에서 MySQL을 사용하고 있으므로 이 작업을 수행하려면 모든 유형을 제거해야 한다고 가정합니다.

적절한 캐싱 전략

Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http://ftp.us.debian.org/debian testing/non-free amd64 Packages
     release o=Debian,a=testing,n=buster,l=Debian,c=non-free,b=amd64
     origin ftp.us.debian.org
 500 http://ftp.us.debian.org/debian testing/contrib amd64 Packages
     release o=Debian,a=testing,n=buster,l=Debian,c=contrib,b=amd64
     origin ftp.us.debian.org
 500 http://ftp.us.debian.org/debian testing/main amd64 Packages
     release o=Debian,a=testing,n=buster,l=Debian,c=main,b=amd64
     origin ftp.us.debian.org
 500 http://ftp.us.debian.org/debian stretch-updates/main amd64 Packages
     release o=Debian,a=stable-updates,n=stretch-updates,l=Debian,c=main,b=amd64
     origin ftp.us.debian.org
 500 http://security.debian.org stretch/updates/main amd64 Packages
     release v=9,o=Debian,a=stable,n=stretch,l=Debian-Security,c=main,b=amd64
     origin security.debian.org
 500 http://ftp.us.debian.org/debian stretch/main amd64 Packages
     release v=9.7,o=Debian,a=stable,n=stretch,l=Debian,c=main,b=amd64
     origin ftp.us.debian.org
Pinned packages:

소스.목록

deb http://ftp.us.debian.org/debian stretch main
deb http://security.debian.org/ stretch/updates main
deb http://ftp.us.debian.org/debian stretch-updates main
deb http://ftp.us.debian.org/debian testing main contrib non-free

내 소스에서 이를 제거 했고 업그레이드할 때 이( )와 관련된 모든 패키지를 다시 설치할 수 있지만 libssl1.1(소스에서 수동으로 컴파일됨)을 제거하려고 하면 시스템에 해를 끼칠 수 있다는 것을 깨달았기 때문에 deb http://ftp.us.debian.org/debian testing main contrib non-free제거할 수 있었습니다. :libmariadb3default-libmysqlclient-dev libmariadb-dev libmariadb-dev-compat libmariadb3

apt-transport-https autoconf automake bind9-host build-essential ca-certificates cloud-init cloud-initramfs-growroot cloud-utils curl dh-python dnsutils
  dpkg-dev euca2ools ghostscript git host libalgorithm-c3-perl libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libarchive-extract-perl
  libauthen-sasl-perl libbind9-90 libcgi-fast-perl libcgi-pm-perl libclass-accessor-perl libclass-c3-perl libclass-c3-xs-perl libcpan-meta-perl libcups2
  libcupsfilters1 libcupsimage2 libcurl3-gnutls libcurl4 libdata-optlist-perl libdata-section-perl libdbd-mysql-perl libdbi-perl libdns100 libdpkg-perl
  libencode-locale-perl liberror-perl libfcgi-perl libfile-fcntllock-perl libfile-listing-perl libfont-afm-perl libgs9 libgssapi-krb5-2 libgtk2.0-0 libgtk2.0-bin
  libhtml-form-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhtml-tree-perl libhttp-cookies-perl libhttp-daemon-perl
  libhttp-date-perl libhttp-message-perl libhttp-negotiate-perl libintl-perl libio-html-perl libio-socket-ssl-perl libio-string-perl libisccfg90 libkrb5-3
  liblog-message-perl liblog-message-simple-perl liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl libmodule-build-perl
  libmodule-pluggable-perl libmodule-signature-perl libmro-compat-perl libnet-http-perl libnet-smtp-ssl-perl libnet-ssleay-perl libpackage-constants-perl
  libparams-util-perl libparse-debianchangelog-perl libperl4-corelibs-perl libpod-latex-perl libpod-readme-perl libpython3-stdlib libpython3.5-minimal
  libpython3.5-stdlib libregexp-common-perl libsoftware-license-perl libssl-dev libssl1.1 libsub-exporter-perl libsub-install-perl libsub-name-perl
  libswitch-perl libterm-readkey-perl libterm-ui-perl libtext-soundex-perl libtext-template-perl libtext-unidecode-perl libtimedate-perl libtirpc1 liburi-perl
  libwww-perl libwww-robotrules-perl libxml-libxml-perl libxml-namespacesupport-perl libxml-parser-perl libxml-sax-base-perl libxml-sax-expat-perl
  libxml-sax-perl lsof mutt mysql-client-5.5 mysql-server mysql-server-5.5 mysqltuner nfs-common openssh-client openssh-server openssh-sftp-server openssl perl
  perl-modules pinentry-gtk2 python-boto python-chardet-whl python-pip python-pip-whl python-reportbug python-requestbuilder python-requests python-requests-whl
  python-software-properties python-virtualenv python3 python3-apt python3-minimal python3-pkg-resources python3-virtualenv python3.5 python3.5-minimal rename
  reportbug rpcbind sendmail sendmail-base sendmail-bin texinfo unattended-upgrades virtualenv

답변1

경고하다! ! 잠재적인 위험을 이해하지 않고 내가 한 일을 하지 마십시오! 당신은 경고를 받았습니다 좋아, 그래서 나는 "쿠키를 위험에 빠뜨리고" 원하는 것을 삭제하도록 허용할 것이라고 생각했습니다. 운 좋게도 세상의 종말이 다가왔고 내 시스템은 이제 잘 작동하고 있습니다. 내가 한 일을 자세히 설명하자면:

sudo apt remove libmariadb3
sudo dpkg -r --force-depends libssl1.1 <-- this removed the big list of packages in my question
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade

필요한 패키지를 설치하겠습니다.

나는 이것을하는 것을 정말로 권장하지 않습니다

답변2

뭔가 잘못됐어

jessie현재 대부분 Debian 8( )을 사용하고 있는 것 같지만 MySQL/MariaDB는 python-httplib2다음으로 업데이트되었습니다.현재의 testing(결국 Debian 10이 될 것입니다 buster.)

testing처음에 버전에 추가했을 때는 아마도 (= Debian 9, 현재 버전)과 동의어였을 것입니다 sources.list. 그러나 Debian 9가 출시된 날에도 다음 버전을 가리키는 것으로 점프했으므로 "사소한 업데이트"(귀하의 The 초기 + )는 적어도 일부 패키지를 버전 수준으로 업데이트할 수 있습니다.stretchstabletestingsudo apt-get updatesudo apt-get upgradebuster

testing이는 stretch또는 같은 릴리스 코드명을 사용하는 위험 입니다 buster. 릴리스 당일에 정확히 리포지토리 구성을 업데이트해야 합니다. 그렇지 않으면 매우 주의하지 않는 한 계획되지 않은 부분 업그레이드가 쉽게 발생할 수 있습니다.

다음에 무엇을할지

다음 명령은 현재 버전 수준이 아닌 모든 패키지를 식별하는 데 도움이 될 수 있습니다 stable(Debian 8에서 작동한다고 가정하고 거기에서 사용 가능한지 확실하지 않습니다).

apt list --installed | grep -v /stable

grep upgrade /var/log/dpkg.log최신 패키지 업그레이드를 확인하고 해당 버전을 확인하려면 실행하세요 . buster실수로 / 로 업그레이드된 모든 패키지를 찾고 testing,다운그레이드(삭제하지 마세요) 올바른 버전으로 되돌리세요.

로그 메시지는 다음과 같습니다.

<timestamp> upgrade <package name> <old version> <new version>

이렇게 하면 이전 버전이 무엇인지 확인할 수 있습니다. 이전 버전의 패키지가 이미 적합한 경우 stretch(예: testingDebian 8이 출시될 때 설치됨 stable) 패키지를 stretch현재 수준으로 다시 다운그레이드합니다.

sudo apt-get -t=stretch <package name>

또는 정확한 버전 번호를 지정해야 하는 경우:

sudo apt-get install <package-name>=<package-version-number>

관련 정보