ubuntuusers.de

Ubuntu LTS und onedrive: Aktuelle curl-version installieren

Status: Gelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

Quadratschädel

Avatar von Quadratschädel

Anmeldungsdatum:
1. Oktober 2016

Beiträge: 442

hallo allerseits,

ich nutze ubuntu 22.04 und 24.04. auf beiden system sind alte curl-versionen installiert. weil wir in der firma sharepoint-sites und onedrive nutzen, muß ich da leider mitziehen. laut meiner recherche scheint nur onedrive (siehe https://github.com/abraunegg/onedrive/) mit sharepoint zu funktionieren – allerdings braucht das ein aktuelles curl. deshalb meine frage:

wie kann ich curl aus plucky in ubuntu 22.04 und 24.04 installieren?

ich könnte curl natürlich einfach runterladen (siehe https://packages.ubuntu.com/plucky/amd64/curl/download/) , aber ich möchte gerne, daß verfügbare updates automatisch installiert werden. außerdem möchte ich nach dem supportende von plucky zur nächsten ubuntu-version wechseln und curl weiter aktualisieren. ich suche also nach einer möglichkeit, die paketquelle deb http://cz.archive.ubuntu.com/ubuntu plucky main hinzuzufügen und einzig curl inkl. aller pakete, von denen curl abhängt, daraus zu beziehen. alles weitere soll weiterhin aus den paketquellen von noble bzw. jammy kommen.

weiß jemand, wie man sowas machen kann?

falls diese frage woanders bereits beantwortet sein sollte, bitte ich um verzeihung. meine suche nach "curl update" hat leider keine entsprechenden treffer geliefert. über einen link zur lösung würde ich mich sehr freuen. ☺

Bearbeitet von tomtomtom:

Titel auf Wunsch des TEs abgeändert.

Bearbeitet von redknight:

Titel erneut geändert

Berlin_1946 Team-Icon

Supporter, Wikiteam

Anmeldungsdatum:
18. September 2009

Beiträge: 10388

Hallo Quadratschädel

Groß-/Kleinschreibung, dazu hast du zugestimmt, als du dem Forum beigetreten bist.

Bitte beachten.

von.wert

Anmeldungsdatum:
23. Dezember 2020

Beiträge: 11972

Quadratschädel schrieb:

allerdings braucht das ein aktuelles curl.

Du glaubst, Du bekämst das als .deb in oder aus Ubuntu 25.04? Dort liegt nur 8.12.1, aktuell ist 8.13.0.

wie kann ich curl aus plucky in ubuntu 22.04

Selbst schuld, eine 3 Jahre alte Distributionsversion zu nutzen.

und 24.04 installieren?

Auch schon ein Jahr alt. Tja, soviel zu "LTS" und Aktualisierungen überhaupt in Ubuntu, curl 8.5.0.

1
sudo snap install curl

Ausnahmsweise ein snap-Image aktuell, 8.13.0.

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55396

Wohnort: Berlin

Quadratschädel schrieb:

ich suche also nach einer möglichkeit, die paketquelle deb http://cz.archive.ubuntu.com/ubuntu plucky main hinzuzufügen und einzig curl inkl. aller pakete, von denen curl abhängt, daraus zu beziehen.

Siehe Apt-Pinning. Da wirst du aber auch kein aktuelles curl bekommen und weiter aktualisiert wird das da natürlich auch nicht.

Quadratschädel

(Themenstarter)
Avatar von Quadratschädel

Anmeldungsdatum:
1. Oktober 2016

Beiträge: 442

von.wert schrieb:

Quadratschädel schrieb:

allerdings braucht das ein aktuelles curl.

Du glaubst, Du bekämst das als .deb in oder aus Ubuntu 25.04? Dort liegt nur 8.12.1, aktuell ist 8.13.0.

das wäre aktuell genug.

1
sudo snap install curl

Ausnahmsweise ein snap-Image aktuell, 8.13.0.

danke für den hinweis! mit dem snap-curl will onedrive aber offenbar nicht zusammenspielen. ☹

Quadratschädel

(Themenstarter)
Avatar von Quadratschädel

Anmeldungsdatum:
1. Oktober 2016

Beiträge: 442

tomtomtom schrieb:

Quadratschädel schrieb:

ich suche also nach einer möglichkeit, die paketquelle deb http://cz.archive.ubuntu.com/ubuntu plucky main hinzuzufügen und einzig curl inkl. aller pakete, von denen curl abhängt, daraus zu beziehen.

Siehe Apt-Pinning. Da wirst du aber auch kein aktuelles curl bekommen und weiter aktualisiert wird das da natürlich auch nicht.

das sieht interessant aus, vielen dank! ☺

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55396

Wohnort: Berlin

Quadratschädel schrieb:

mit dem snap-curl will onedrive aber offenbar nicht zusammenspielen. ☹

Das soll so.

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55396

Wohnort: Berlin

Btw:

Quadratschädel schrieb:

inkl. aller pakete, von denen curl abhängt

Könnte bei libc6 lustig werden.

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 4927

Das sollte doch eigentlich™ so möglich sein:

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55396

Wohnort: Berlin

trollsportverein schrieb:

Das sollte doch eigentlich™ so möglich sein:

Sieht natürlich einfacher aus als

mkdir curl
cd curl
curl -O http://deb.debian.org/debian/pool/main/c/curl/curl_8.13.0.orig.tar.gz -O http://deb.debian.org/debian/pool/main/c/curl/curl_8.13.0-2.debian.tar.xz
tar -xf curl_8.13.0.orig.tar.gz
tar -xf curl_8.13.0-2.debian.tar.xz
mv debian curl-8.13.0/
cd curl-8.13.0
dpkg-buildpackage -us -uc
cd ..
sudo dpkg -i libcurl4t64_8.13.0-2_amd64.deb curl_8.13.0-2_amd64.deb

(Spoiler: Einfach die Pakete aus den Plucky-Repos installieren wird nicht funktionieren, ohne das halbe System umzubauen. Da ist das selbst kompilieren gegen die Abhängigkeiten in der genutzten Version der einfachere Weg, sofern die build-dependencies auflösbar sind).

EDIT: Nö, build-dependencies sind nicht auflösbar, Versionen von dpkg-dev, libngtcp2-dev, libngtcp2-crypto-gnutls-dev und libnghttp3-dev sind zu niedrig.

Quadratschädel

(Themenstarter)
Avatar von Quadratschädel

Anmeldungsdatum:
1. Oktober 2016

Beiträge: 442

vielen dank für eure rückmeldungen! ich verstehe nur leider nicht einmal die hälfte ... 😉

wie wäre denn nun das bevorzugte vorgehen? eine paketquelle hinzufügen oder einen tarball laden, das paket bauen und dann installieren? was ist mit den abhängigkeiten – habe ich eine chance, auf eine (zumindest halbwegs) aktuelle curl-version zu kommen, ohne das ganze system umwerfen zu müssen?

auch wenn das vielleicht etwas viel verlangt sein mag: könntet ihr mir die einzelnen schritte bitte erklären, sodaß ich sie vielleicht verstehen kann?

Quadratschädel

(Themenstarter)
Avatar von Quadratschädel

Anmeldungsdatum:
1. Oktober 2016

Beiträge: 442

tomtomtom schrieb:

EDIT: Nö, build-dependencies sind nicht auflösbar, Versionen von dpkg-dev, libngtcp2-dev, libngtcp2-crypto-gnutls-dev und libnghttp3-dev sind zu niedrig.

in jammy oder auch in noble?

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55396

Wohnort: Berlin

Quadratschädel schrieb:

wie wäre denn nun das bevorzugte vorgehen?

Keine uralte Ubuntu-Version verwenden. 😈

Ansonsten halt Quellcode herunterladen und Paket neu bauen gegen die Abhängigkeiten des installierten Systems. Reichen die nicht aus müssen auch diese auf dem selben Weg neu gebaut werden. Reichen die Abhängigkeiten, um diese zu bauen, nicht aus, müssen auch die Abhängigkeiten der Abhängigkeiten neu gebaut werden usw. usf.

eine paketquelle hinzufügen

Funktioniert nicht, da du da entweder die Abhängigkeiten nicht auflösen kannst oder dir, wenn du alle notwendigen Abhängigkeiten aus Plucky installierst, eine selbstgeschaffte Dependency_hell schaffst.

auch wenn das vielleicht etwas viel verlangt sein mag: könntet ihr mir die einzelnen schritte bitte erklären, sodaß ich sie vielleicht verstehen kann?

Also ich werd jedenfalls nicht das Debian-Handbuch und sämtliche Wiki-Artikel abtippen, in denen das schon alles erklärt ist.

Und ja, es ist notwendig, dass man versteht, was man da tut.

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 4927

Im Frickelmodus am Paketsystem vorbei und direkt aus dem GIT auf den akutellen Master-Branch Stand ginge so:

alias curlneu='INSTALLATIONSDISK=$HOME/Installationsdisk && \
                CURL_BASE=$INSTALLATIONSDISK/Curl && \
                CURL_SRC=$CURL_BASE/curl && \
                [ ! -d $INSTALLATIONSDISK ] && mkdir -pv $INSTALLATIONSDISK || echo "$INSTALLATIONSDISK exists" && \
                [ ! -d $CURL_BASE ] && mkdir -pv $CURL_BASE || echo "$CURL_BASE exists" && \
                [ ! -d $CURL_SRC/.git ] && git clone https://github.com/curl/curl.git $CURL_SRC && \
                printf "\n \033[45m\033[1;36m==> cURL Sourcecode cloned. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" || \
                printf "\n \033[45m\033[1;36m==> cURL Sourcecode found. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                printf "\n \033[45m\033[1;36m==> Update cURL Sourcecode. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                git -C $CURL_SRC pull && echo "git pull done." || echo "No git pull." && \
                [ -d  $CURL_SRC/build ] && yes | rm -fr $CURL_SRC/build && \
                echo "Builddir removed, OK" || echo "No need remove Builddir, OK." && \
                [ ! -d $CURL_SRC/build ] && mkdir -pv $CURL_SRC/build && \
                sudo mount -v tmpfs $CURL_SRC/build -t tmpfs -o mode=777 && \
                printf "\n \033[45m\033[1;36m==> Config cURL for build. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=TRUE \
                -DCURL_USE_OPENSSL=TRUE -DCURL_USE_GNUTLS=TRUE -Wno-dev -S $CURL_SRC -B $CURL_SRC/build -G Ninja && \
                printf "\n \033[45m\033[1;36m==> Compile cURL. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                time ninja -j $(nproc --all) -C $CURL_SRC/build && \
                printf "\n \033[45m\033[1;36m==> Install cURL. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                sudo porg -lp curl "ninja -j $(nproc --all) -C $CURL_SRC/build install/strip" && \
                [ -f $CURL_SRC/build/install_manifest.txt ] && cp -v $CURL_SRC/build/install_manifest.txt $CURL_BASE/install_manifest.txt && \
                echo "$CURL_BASE/install_manifest.txt saved." || echo "No $CURL_SRC/build/install_manifest.txt found." && \
                printf "\n \033[45m\033[1;36m==> Install cURL successful. \033[0m\033[42m\033[1;36m  ==> Done.\033[0m \n \n" && \
                printf "\n \033[45m\033[1;36m==> cURL deinstall: \033[0m\033[43m\033[1;36m sudo porg -lp curl   <== \033[0m \n \n" || \
                printf "\n \033[41m\033[1;36m==> Install cURL failed.\033[0m \n \n" ; \
                cd $HOME ; \
                sudo umount -fv $CURL_SRC/build ; \
                [ -d $CURL_SRC/build ] && yes | rm -fr $CURL_SRC/build && echo "Builddir cleaned." || echo "Builddir was clean." ; \
                cd $HOME'

Wegen porg, siehe im Wiki:

Das hatte bei mir funktioniert auf Oracular Oriole. Aber irgendwas war, so dass ich wieder auf die Paketversion von Oracular Oriole zurück bin. Kann mich aber nicht mehr erinnern, was genau das war, nur dass es nicht allzu schlimm war, mich aber trotzdem irgendwie vom Gefühl her störte.

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55396

Wohnort: Berlin

Quadratschädel schrieb:

in jammy oder auch in noble?

Auch in noble.

Antworten |