Aktualisieren von NGINX vom Debian-Buster-Repo zum Nginx-Repo

Aktualisieren von NGINX vom Debian-Buster-Repo zum Nginx-Repo

Wenn ich versuche, meine Nginx-Version (aus dem Debian-Repository installiert) auf die neueste Version aus dem Nginx-Repository zu aktualisieren, schlägt dies fehl, da eine Datei, die sich auch in einem der alten Nginx-Pakete befindet (dieses Paket wird automatisch entfernt), nicht überschrieben werden kann. Dies ist die Bash-Ausgabe beim Ausführen des apt install nginx -VBefehls:

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
   geoip-database (20190724-1~bpo10+1)
   libgd3 (2.2.5-5.2)
   libgeoip1 (1.6.12-3~bpo10+1)
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
   libnginx-mod-http-auth-pam (1.14.2-2)
   libnginx-mod-http-dav-ext (1.14.2-2)
   libnginx-mod-http-echo (1.14.2-2)
   libnginx-mod-http-geoip (1.14.2-2)
   libnginx-mod-http-image-filter (1.14.2-2)
   libnginx-mod-http-subs-filter (1.14.2-2)
   libnginx-mod-http-upstream-fair (1.14.2-2)
   libnginx-mod-http-xslt-filter (1.14.2-2)
   libnginx-mod-mail (1.14.2-2)
   libnginx-mod-stream (1.14.2-2)
   nginx-common (1.14.2-2)
   nginx-full (1.14.2-2)
The following packages will be upgraded:
   nginx (1.14.2-2 => 1.16.1-1~buster)
1 upgraded, 0 newly installed, 12 to remove and 0 not upgraded.
Need to get 0 B/850 kB of archives.
After this operation, 291 kB disk space will be freed.
Do you want to continue? [Y/n]
dpkg: libnginx-mod-http-auth-pam: dependency problems, but removing anyway as you requested:
 nginx-full depends on libnginx-mod-http-auth-pam (= 1.14.2-2).

(Reading database ... 152770 files and directories currently installed.)
Removing libnginx-mod-http-auth-pam (1.14.2-2) ...
dpkg: nginx-common: dependency problems, but removing anyway as you requested:
 nginx-full depends on nginx-common (= 1.14.2-2); however:
  Package nginx-common is to be removed.
 libnginx-mod-stream depends on nginx-common (= 1.14.2-2).
 libnginx-mod-mail depends on nginx-common (= 1.14.2-2).
 libnginx-mod-http-xslt-filter depends on nginx-common (= 1.14.2-2).
 libnginx-mod-http-upstream-fair depends on nginx-common (= 1.14.2-2).
 libnginx-mod-http-subs-filter depends on nginx-common (= 1.14.2-2).
 libnginx-mod-http-image-filter depends on nginx-common (= 1.14.2-2).
 libnginx-mod-http-geoip depends on nginx-common (= 1.14.2-2).
 libnginx-mod-http-echo depends on nginx-common (= 1.14.2-2).
 libnginx-mod-http-dav-ext depends on nginx-common (= 1.14.2-2).

Removing nginx-common (1.14.2-2) ...
(Reading database ... 152743 files and directories currently installed.)
Preparing to unpack .../nginx_1.16.1-1~buster_amd64.deb ...
Unpacking nginx (1.16.1-1~buster) over (1.14.2-2) ...
dpkg: error processing archive /var/cache/apt/archives/nginx_1.16.1-1~buster_amd64.deb (--unpack):
 trying to overwrite '/usr/sbin/nginx', which is also in package nginx-full 1.14.2-2
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/nginx_1.16.1-1~buster_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Es scheint, als ob nicht zuerst die alten Pakete deinstalliert und dann die neuen installiert werden. Stattdessen werden zwei Pakete deinstalliert und dann versucht, das aktualisierte zu installieren. Denn nachdem ich dieses Update ausprobiert habe, muss ich es neu installieren nginx-commonund libnginx-mod-http-auth-pam

Meine Frage ist: Kennt jemand eine Möglichkeit, die Neuinstallation zu erzwingen ( dist-upgradeund --with-new-pkgses hat nicht funktioniert) oder muss ich diese Pakete manuell deinstallieren? Oder fehlt mir einfach ein Schritt, den ich vor dem Upgrade ausführen muss?

Antwort1

Ich weiß nicht, ob das noch relevant ist, aber ich hatte ein ähnliches Problem. Was bei mir funktioniert hat, war, dass ich das alte Nginx deinstalliert habe:apt remove nginx nginx-common

Anschließend die neue Version installiert:apt install nginx

Wenn Ihre aktuelle Version defekt ist, können Sie das Problem beheben mitapt --fix-broken install

Antwort2

Verwenden Sie diesen Befehl. Bei mir hat das funktioniert.

sudo dpkg --purge --force-depends apache2

verwandte Informationen