GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Überschreiben Sie die Version des Abhängigkeitspakets, das von Shlibs festgelegt wurde:hängt in Deb ab?

Ich baue ein Debian-Paket, das von libmysqlcppconn7v5 abhängt . Ich baue es auf Ubuntu, das libmysqlcppconn7v5 hat 1.1.9, jedoch soll es auf Debian installiert werden, das libmysqlcppconn7v5 hat 1.1.7.

debian/control enthält folgende Zeile:

Depends: ${shlibs:Depends}, ${misc:Depends}, libmysqlcppconn7v5 (>= 1.1.7)

Wenn das Paket gebaut wird, hat es immer noch die Abhängigkeit libmysqlcppconn7v5 (>= 1.1.9)

Wie kann ich erzwingen, dass es eine Abhängigkeit von einer niedrigeren Paketversion hat, als ich beim Erstellen des Pakets installiert habe?

Akzeptierte Antwort:

Wenn shlibs:Depends schließlich die Version 1.1.9 oder höher von libmysqlcppconn7v5 angibt , bedeutet dies (theoretisch), dass die von Ihnen erstellte Binärdatei ein Symbol verwendet, das nur in Version 1.1.9 oder höher verfügbar ist. Ihr Paket funktioniert also nicht unbedingt unter Debian mit libmysqlcppconn7v5 1.1.7, auch wenn Sie die Abhängigkeiten überschreiben. (Ich schränke dies etwas ein, da das Paket keine Symbole oder Shlibs-Dateien bereitstellt, sodass die Heuristik nicht gültig ist.)

In der Regel müssen Sie Ihr Paket auf Debian bauen, wenn Sie es auf Debian installieren möchten. Das ist unter Ubuntu gar nicht so schwer; schau dir mal debootstrap an , sbuild und pbuilder . pbuilder insbesondere kann es leicht eingerichtet werden, um auf mehreren Distributionen aufzubauen.

Wenn Sie wirklich shlibs:Depends überschreiben möchten , können Sie die .substvars bearbeiten Datei, die während des Builds generiert wird, nach dpkg-shlibdeps ist gelaufen:

override_dh_shlibdeps:
    dh_shlibdeps
    sed -i s/1.1.9/1.1.7/g debian/yourpackage.substvars

Linux
  1. So listen Sie Dateien auf, die von einem RPM- oder DEB-Paket in Linux installiert wurden

  2. So legen Sie die Paket-, PPA- und Apt-Repository-Priorität in Ubuntu fest

  3. So installieren und verwenden Sie den Yarn Package Manager unter Linux

  4. Wie verwende ich yum, um eine bestimmte Version eines Pakets zu installieren?

  5. Eine andere Version eines Pakets installieren?

So konvertieren Sie mit Alien von RPM zu DEB und DEB zu RPM-Paket

Wie man Pakete zwischen .deb und .rpm konvertiert

So installieren Sie das Debian-Paket (.deb).

So führen Sie ein Downgrade von Paketen auf Ubuntu durch

Wie kann man Yum anweisen, eine bestimmte Version von Paket X zu installieren?

4 Möglichkeiten zum Überprüfen der CentOS-Version in der Linux-Befehlszeile