Debian Paket aus einem Debian Source Paket: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
=Hintergrund= | =Hintergrund= | ||
| − | *Um SSL aufzubrechen muss Squid mit der Option | + | *Um SSL aufzubrechen muss Squid mit der Option '''--with-openssl''' übersetzt werden. |
| − | * | + | *Die Squid-Pakete aus den Distributionsquellen sind ohne diese Option gebaut. |
| + | *Wir müssen Squid also selbst übersetzen. | ||
| + | |||
=Theoretisches Vorgehen= | =Theoretisches Vorgehen= | ||
| − | *wget http://www.squid-cache.org/Versions/ | + | ;So würde man Squid von Hand übersetzen: |
| − | *tar -xvzf squid- | + | *wget http://www.squid-cache.org/Versions/v5/squid-5.2.tar.gz |
| − | *cd squid | + | *tar -xvzf squid-5.2.tar.gz |
| + | *cd squid-5.2 | ||
*./configure --with-openssl --enable-ssl-crtd --enable-ltdl-convenience --enable-icap-client | *./configure --with-openssl --enable-ssl-crtd --enable-ltdl-convenience --enable-icap-client | ||
| − | *make | + | *make |
*make install | *make install | ||
| − | ; | + | ;Das Ergebnis liegt danach im System, ohne dass die Paketverwaltung etwas davon weiss. |
| + | ;Es lässt sich nicht sauber deinstallieren und wird bei Updates nicht berücksichtigt. | ||
| + | ;Deshalb bauen wir stattdessen ein Debian-Paket. | ||
=Vorgehensweise= | =Vorgehensweise= | ||
| − | == | + | |
| − | ; | + | ==Quellpaket herunterladen== |
| + | ;In der Datei /etc/apt/sources.list müssen die deb-src Quellen eingerichtet sein. | ||
*apt source squid | *apt source squid | ||
| − | *cd squid* | + | *cd squid-* |
| − | == | + | ;Wir laden hier nicht den Quellcode von squid-cache.org, sondern das fertige Debian-Quellpaket. |
| − | ; | + | ;Es enthält bereits ein vollständiges debian/ Verzeichnis mit allen Anpassungen der Distribution. |
| + | ;Wir müssen also nur die Übersetzungsoptionen ergänzen. | ||
| + | |||
| + | ==Build-Abhängigkeiten installieren== | ||
| + | *sudo apt build-dep squid | ||
| + | ;build-dep liest die benötigten Pakete direkt aus dem Quellpaket und installiert sie. | ||
| + | ;Das ist der bequeme Weg. Wie man die Liste auch selbst herausfindet, zeigt der erste Durchlauf weiter unten. | ||
| + | |||
| + | ==Anpassen der Übersetzungsoptionen== | ||
*vi debian/rules | *vi debian/rules | ||
| − | + | ;Die Optionen werden bei den bestehenden configure-Flags ergänzt: | |
| − | + | <pre> | |
| − | + | --with-openssl \ | |
| − | + | --enable-ssl-crtd \ | |
| − | + | --enable-ltdl-convenience \ | |
| + | --enable-icap-client \ | ||
| + | </pre> | ||
| + | ;Achten Sie darauf, dass jede Zeile ausser der letzten mit einem Backslash endet. | ||
| + | ;Der genaue Ort im debian/rules unterscheidet sich je nach Squid-Version - suchen Sie nach dem vorhandenen configure-Aufruf. | ||
| + | |||
=Erster Durchlauf= | =Erster Durchlauf= | ||
| + | ;Hätten wir apt build-dep vergessen, sähe der Bauversuch so aus: | ||
*dpkg-buildpackage -us -uc | *dpkg-buildpackage -us -uc | ||
dpkg-buildpackage: info: source package squid | dpkg-buildpackage: info: source package squid | ||
dpkg-buildpackage: info: source version 5.2-1ubuntu4.3 | dpkg-buildpackage: info: source version 5.2-1ubuntu4.3 | ||
dpkg-buildpackage: info: source distribution jammy | dpkg-buildpackage: info: source distribution jammy | ||
| − | |||
dpkg-buildpackage: info: host architecture amd64 | dpkg-buildpackage: info: host architecture amd64 | ||
dpkg-source --before-build . | dpkg-source --before-build . | ||
| − | dpkg-checkbuilddeps: error: Unmet build dependencies: | + | dpkg-checkbuilddeps: error: Unmet build dependencies: libltdl-dev debhelper (>= 12.8) dh-apparmor |
| − | + | libcppunit-dev libcap2-dev libecap3-dev (>= 1.0.1-2) libgnutls28-dev (>= 3.5) libkrb5-dev comerr-dev | |
| + | libldap2-dev libnetfilter-conntrack-dev libpam0g-dev libsasl2-dev libsystemd-dev libtdb-dev | ||
| + | nettle-dev libssl-dev | ||
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting | dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting | ||
dpkg-buildpackage: warning: (Use -d flag to override.) | dpkg-buildpackage: warning: (Use -d flag to override.) | ||
| + | ;dpkg-checkbuilddeps vergleicht die Angaben aus debian/control mit dem installierten System und bricht vorher ab. | ||
| + | ;Genau diese Liste hätte man nun von Hand nachinstallieren können - apt build-dep nimmt einem das ab. | ||
| − | |||
| − | |||
| − | |||
=Der zweite Durchlauf= | =Der zweite Durchlauf= | ||
*dpkg-buildpackage -us -uc | *dpkg-buildpackage -us -uc | ||
| + | ;Der Bau dauert je nach Maschine mehrere Minuten. | ||
| + | |||
| + | =Ergebnis= | ||
| + | *ls ../squid*.deb | ||
| + | ;Es entstehen mehrere Pakete, unter anderem squid, squid-common und squid-openssl. | ||
| + | |||
| + | =Installieren= | ||
| + | *sudo apt install ./squid_*.deb ./squid-common_*.deb | ||
| + | ;apt löst dabei Abhängigkeiten auf, dpkg -i tut das nicht. | ||
| + | |||
| + | =Prüfen ob SSL einkompiliert wurde= | ||
| + | *squid -v | ||
| + | ;In der Ausgabe muss --with-openssl in der Zeile "configure options" auftauchen. | ||
Aktuelle Version vom 25. August 2026, 05:25 Uhr
Hintergrund
- Um SSL aufzubrechen muss Squid mit der Option --with-openssl übersetzt werden.
- Die Squid-Pakete aus den Distributionsquellen sind ohne diese Option gebaut.
- Wir müssen Squid also selbst übersetzen.
Theoretisches Vorgehen
- So würde man Squid von Hand übersetzen
- wget http://www.squid-cache.org/Versions/v5/squid-5.2.tar.gz
- tar -xvzf squid-5.2.tar.gz
- cd squid-5.2
- ./configure --with-openssl --enable-ssl-crtd --enable-ltdl-convenience --enable-icap-client
- make
- make install
- Das Ergebnis liegt danach im System, ohne dass die Paketverwaltung etwas davon weiss.
- Es lässt sich nicht sauber deinstallieren und wird bei Updates nicht berücksichtigt.
- Deshalb bauen wir stattdessen ein Debian-Paket.
Vorgehensweise
Quellpaket herunterladen
- In der Datei /etc/apt/sources.list müssen die deb-src Quellen eingerichtet sein.
- apt source squid
- cd squid-*
- Wir laden hier nicht den Quellcode von squid-cache.org, sondern das fertige Debian-Quellpaket.
- Es enthält bereits ein vollständiges debian/ Verzeichnis mit allen Anpassungen der Distribution.
- Wir müssen also nur die Übersetzungsoptionen ergänzen.
Build-Abhängigkeiten installieren
- sudo apt build-dep squid
- build-dep liest die benötigten Pakete direkt aus dem Quellpaket und installiert sie.
- Das ist der bequeme Weg. Wie man die Liste auch selbst herausfindet, zeigt der erste Durchlauf weiter unten.
Anpassen der Übersetzungsoptionen
- vi debian/rules
- Die Optionen werden bei den bestehenden configure-Flags ergänzt
--with-openssl \ --enable-ssl-crtd \ --enable-ltdl-convenience \ --enable-icap-client \
- Achten Sie darauf, dass jede Zeile ausser der letzten mit einem Backslash endet.
- Der genaue Ort im debian/rules unterscheidet sich je nach Squid-Version - suchen Sie nach dem vorhandenen configure-Aufruf.
Erster Durchlauf
- Hätten wir apt build-dep vergessen, sähe der Bauversuch so aus
- dpkg-buildpackage -us -uc
dpkg-buildpackage: info: source package squid dpkg-buildpackage: info: source version 5.2-1ubuntu4.3 dpkg-buildpackage: info: source distribution jammy dpkg-buildpackage: info: host architecture amd64 dpkg-source --before-build . dpkg-checkbuilddeps: error: Unmet build dependencies: libltdl-dev debhelper (>= 12.8) dh-apparmor libcppunit-dev libcap2-dev libecap3-dev (>= 1.0.1-2) libgnutls28-dev (>= 3.5) libkrb5-dev comerr-dev libldap2-dev libnetfilter-conntrack-dev libpam0g-dev libsasl2-dev libsystemd-dev libtdb-dev nettle-dev libssl-dev dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting dpkg-buildpackage: warning: (Use -d flag to override.)
- dpkg-checkbuilddeps vergleicht die Angaben aus debian/control mit dem installierten System und bricht vorher ab.
- Genau diese Liste hätte man nun von Hand nachinstallieren können - apt build-dep nimmt einem das ab.
Der zweite Durchlauf
- dpkg-buildpackage -us -uc
- Der Bau dauert je nach Maschine mehrere Minuten.
Ergebnis
- ls ../squid*.deb
- Es entstehen mehrere Pakete, unter anderem squid, squid-common und squid-openssl.
Installieren
- sudo apt install ./squid_*.deb ./squid-common_*.deb
- apt löst dabei Abhängigkeiten auf, dpkg -i tut das nicht.
Prüfen ob SSL einkompiliert wurde
- squid -v
- In der Ausgabe muss --with-openssl in der Zeile "configure options" auftauchen.