GNU/Linux >> Znalost Linux >  >> Linux

Přepsat verzi balíčku závislostí nastavený Shlibs:závisí v Deb?

Vytvářím balíček Debian, který závisí na libmysqlcppconn7v5 . Stavím to na Ubuntu, které má libmysqlcppconn7v5 1.1.9, je však určen k instalaci na Debian, který má libmysqlcppconn7v5 1.1.7.

debian/control obsahuje následující řádek:

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

Když je balíček sestaven, stále má závislost libmysqlcppconn7v5 (>= 1.1.9)

Jak mohu přinutit, aby byl závislý na nižší verzi balíčku, než jsem nainstaloval při sestavování balíčku?

Přijatá odpověď:

Pokud shlibs:Depends skončí specifikací verze 1.1.9 nebo novější libmysqlcppconn7v5 , to (teoreticky) znamená, že binární soubor, který jste vytvořili, používá symbol, který je dostupný pouze ve verzi 1.1.9 nebo novější. Váš balíček tedy nemusí nutně fungovat na Debianu s libmysqlcppconn7v5 1.1.7, i když přepíšete závislosti. (Poněkud to kvalifikuji, protože balíček neposkytuje soubory symbolů ani shlibs, takže heuristika není platná.)

Obecně platí, že pokud jej chcete nainstalovat na Debian, musíte svůj balíček postavit na Debianu. To není tak těžké udělat na Ubuntu; podívejte se na debootstrap , sbuild a pbuilder . pbuilder zejména lze snadno nastavit tak, aby stavělo na více distribucích.

Pokud opravdu chcete přepsat shlibs:Depends , můžete upravit .substvars soubor, který je vygenerován během sestavení, po dpkg-shlibdeps spustilo:

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

Linux
  1. Jak nastavit prioritu balíčku, PPA, Apt Repository v Ubuntu

  2. Jak nainstalovat a používat Správce balíčků příze v Linuxu

  3. Jak použít yum k instalaci konkrétní verze balíčku?

  1. Jak nainstalovat soubor Deb pomocí Dpkg -i nebo Apt?

  2. Jak zkontrolovat seznam závislostí pro balíček Deb?

  3. Verze aktualizovaného balíčku?

  1. Jak zobrazit seznam souborů nainstalovaných z RPM nebo DEB balíčku v Linuxu

  2. Jak najít verzi balíčku v Linuxu

  3. Jak upravit balíček deb?