ubuntuusers.de

zusätzliche Pakete mit debconf

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

xVitamine

Anmeldungsdatum:
12. Juli 2023

Beiträge: 32

Wohnort: Köln

Hallo, kann mir zufällig jemand sagen ob es möglich ist zusätzliche Pakete zur Auswahl zu bieten während der Installation einer deb Datei ?

Ich würde gerne ein Setup erstellen und während der Installation eine Auswahl von Webservern bieten die man optional auswählen können soll, das Paket phpmyadmin macht so was ähnliches.

Da es nicht möglich ist während der Installation auf apt bzw dpkg zuzugreifen, stellt sich das nicht als einfach heraus.

Berlin_1946 Team-Icon

Supporter, Wikiteam

Anmeldungsdatum:
18. September 2009

Beiträge: 10367

xVitamine schrieb:

... zur Auswahl zu bieten während der Installation einer deb Datei ?

Was bitte ist "zur Auswahl zu bieten"?

xVitamine

(Themenstarter)

Anmeldungsdatum:
12. Juli 2023

Beiträge: 32

Wohnort: Köln

🙄 eine kürzere Form von "zur Auswahl anzubieten" ?

inzwischen frage ich mich aber auch warum es hier keine Nutzer gibt, die irgendwelche produktiven antworten geben können, weder hier noch in anderen Beiträgen.

Immer nur irgendwelche unnötige kacke, wundere mich schon warum in Vergangenheit zumindest google schon mal was nützliches hier finden konnte, aber das waren meistens auch nur ältere Posts, mittlerweile gibt es wohl nur noch Noob User die jetzt überall ihren Senf zu geben müssen, auch wenn es absolut nicht produktiv ist.

Uund in meinen Augen reicht doch schon der titel um zu checken um was geht, es-seiden man kennt kein debconf, was man aber sollte wenn man schon in "Paketbau" herumschaut, und falls nicht brauche ich auch keiner Hilfe von dieser Person.

also ich will... "Eine abfrage mit debconf, die fragt welche optionalen Abhängigkeiten installiert werden sollen."

verdooft

Anmeldungsdatum:
15. September 2012

Beiträge: 4422

Das könnte Template field type select sein. Siehe 6.6.3.1.4. select: https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html

Ich habs nie getestet, Phind hat mich auf die Idee gebracht, da wurde das so ausgegeben:

        Template: yourpackage/choose_webserver
        Type: select
        Choices: apache2, nginx
        Default: apache2
        Description: Choose a web server to install:
         Please select between apache2 and nginx.
        ```

Ist aber nur ein Teil der ganzen Vorgehensweise. Was auch vorkommt:

Finally, create the `debian/postinst` file to handle the user's choice:

    #!/bin/sh

    set -e
    . /usr/share/debconf/confmodule
    db_get yourpackage/choose_webserver
    apt-get install -y $RET
    # ...
    ```

Viel Erfolg, vielleicht bringen dich die Hinweise weiter.

multiselect könnte auch interessant sein:

6.6.3.1.5. multiselect

Like the select data type, except the user can choose any number of items from the choices list (or chose none of them).

https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html#multiselect

xVitamine

(Themenstarter)

Anmeldungsdatum:
12. Juli 2023

Beiträge: 32

Wohnort: Köln

Hehe fühlte da sich jetzt jemand getriggert und musste unbedingt eine nützliche Antwort geben ?

aber dieser part hier gehört zu debconf verdooft schrieb:

        Template: yourpackage/choose_webserver
        Type: select
        Choices: apache2, nginx
        Default: apache2
        Description: Choose a web server to install:
         Please select between apache2 and nginx.
        ```

verdooft schrieb:

    db_get yourpackage/choose_webserver
    apt-get install -y $RET

Aber das hier sollte doch nicht klappen, da wenn man apt nutzt wird doch ein lock erstellt, wie kann man dann apt innerhalb von apt aufrufen? Das kam mir schon so absurd vor das ich es um ehrlich zu sein nicht getestet habe.

Ich ging davon aus das man es irgendwie in die "control" datei unter "Depends:" dynamisch eintragen werden muss bevor diese geladen wird, villeicht wäre das auch der grund der "config" und "conffiles" datei, ich habe dessen nutzen jedenfalls noch nicht entdeckt.

Edit: ah meine .deb Dateien liegen auf einem privaten Repository Server und ich installiere sie mit dem apt Befehl.

verdooft

Anmeldungsdatum:
15. September 2012

Beiträge: 4422

Ich hab mir mal die Inhalte der Pakete tasksel und tasksel-data angesehen, finde aber nicht die Stelle, wo die Pakete installiert werden. Jedenfalls wird da multiselect verwendet.

xVitamine

(Themenstarter)

Anmeldungsdatum:
12. Juli 2023

Beiträge: 32

Wohnort: Köln

Bei phpmyadmin werden einfach beide webserver installiert und nur den jeweiligen den man ausgewählt wird konfiguriert, aber das finde ich so irgendwie unschön.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
	# Configure Apache
	db_get phpmyadmin/reconfigure-webserver || true

	webservers="$RET"

	for webserver in $webservers; do
		webserver=${webserver%,}
		if [ "$webserver" = "lighttpd" ] ; then
			lighttpd_install
		else
			# Need to pass params for apache2-maintscript-helper
			apache_install $@
		fi

Man muss ja nur vor den schritt kommen der raus findet welche pakete installiert werden müssen, also fällt preinst schonmal weg, und meines wissens nach kann man keine debconf abfragen in der controli date anlegen, muss die anfrage also in config? und was mache ich dann damit ?

EDIT: jetzt wo ich drüber nach denke macht doch die GUI von der Ubuntu Server Installation doch auch so was, die fragt ja welchen Desktop man haben will und welche Services man installieren möchte

Antworten |