neuste Btrfs Version kompilieren

Datum

Genutzt wurde ein Ubuntu 16.04.3 mit HWE Kernel in der minimal Version, sämtliche apt install Befehle wurden mit der Option --no-install-recommends genutzt.

Die neuste Btrfs-Progs Version in den Standardrepos entspricht der 4.4, welche vom Januar 2016 stammt.

Die neuste Version kann man im Changelog einsehen.

Vorbereitung

Um die neuste Version zu installieren geht man in die Übersicht der Tarballs:
www.kernel.org

wget https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v4.15.tar.gz
Um die zur Zeit aktuellste Version herunter zuladen.

Entpacken der Datei
tar -xzf btrfs-progs-v4.15.tar.gz

Anschließend in den Ordner springen
cd btrfs-progs-v4.15/

configure

Hier muss man nun den Befehl ./configure ausführen, um die Abhängigkeiten aufzulösen und das makefile zu erzeugen.

Hierbei kann es zu fehlenden Abhängigkeiten kommen, nach dem Installieren dieser, den Prozess mit ./configure erneut starten. Bis der Prozess ohne Fehler durchläuft.

mögliche Probleme und Lösungen

configure: error: no acceptable C compiler found in $PATH
Lösung: apt install gcc

configure: error: The pkg-config script could not be found or is too old.  Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.

Lösung: apt install pkg-config

No package 'ext2fs' found
Lösung: apt install e2fslibs-dev

No package 'blkid' found
Lösung: apt install libblkid-dev

No package 'zlib' found
Lösung: hier neuste Version runterladen: zlib

wget https://www.zlib.net/zlib-1.2.11.tar.xz@
tar -xzf zlib-1.2.11.tar.xz
cd zlib-1.2.11/
./configure
make
make install

Wenn das Programm richtig installiert ist findet man unter /usr/local/lib/pkgconfig/ die entsprechende zlib.pc

configure: error: Package requirements (libzstd >= 1.0.0) were not met:
Lösung:

apt install git
cd /root
git clone https://github.com/facebook/zstd.git
cd zstd/
make
make install

configure: error: cannot find lzo2 library
Lösung: apt install liblzo2-dev

make

Nachdem alle Abhängigkeiten installiert sind sollte folgende Aussgabe sichtbar sein:

documentation:      yes
backtrace support:  yes
btrfs-convert:      yes (ext2)
btrfs-restore zstd: yes
Type 'make' to compile.

Anschließend kann man mit make das kompilieren starten.
Hierbei kann es zu folgendem Fehler kommen:

/bin/sh: 2: asciidoc: not found
Makefile:125: recipe for target 'btrfs-ioctl.xml' failed
make[1]: *** [btrfs-ioctl.xml] Error 127
Makefile:293: recipe for target 'build-Documentation' failed
make: *** [build-Documentation] Error 2

So müssen noch folgende Pakete installiert werden:
apt install asciidoc xmlto

Danach sollte das make funktionieren.

make install

Wenn der make Vorgang abgeschlossen ist müssen die alten Verlinkungen gelöscht werden mit apt-get --purge remove btrfs-tools. Die neuen Pakete werden mit make install installiert.

Um zu überprüfen ob die gewünschte Version installiert ist kann man btrfs version aufrufen.

Autor
Kategorien Dateisysteme, Btrfs

PRTG Map