
Wie kompiliere ich transmission-gtk
einen Torrent-Client aus dem Quellcode auf Linux Mint 18 oder allgemein auf Ubuntu 16.04 basierenden Systemen?
Angenommen, ich möchte:
- Entfernen Sie die ursprünglich verpackte Version.
- Ersetzen Sie es, während Sie die ursprünglichen Einstellungen, Desktopelemente usw. beibehalten.
Antwort1
Bei diesem Kompilierungsverfahren sei darauf hingewiesen, dass es für die aktuelle Version 2.92 von heute und für Systeme auf Basis von Ubuntu 16.04 sowie Linux Mint 18 geschrieben wurde. Auf späteren System- und/oder Übertragungsversionen kann diese Anleitung leicht abweichen.
Gehen Sie zur offiziellen Seite. Derzeit erfolgt keine Weiterleitung zu HTTPS über ein sicheres Protokoll. Sie können den folgenden Link verwenden, um zur Webseite zu gelangen:
Navigieren Sie zuQuellcodeund laden Sie die aktuelle Version herunter. Sie verwendet das GitHub-Repository. Wenn Sie sich in der CLI befinden, können Sie diese direkte Methode verwenden:
wget --continue https://github.com/transmission/transmission-releases/raw/master/transmission-2.92.tar.xz
Überprüfen Sie die SHA-256-Hash-Übereinstimmungen. Diese stehen auf der offiziellen Download-Seite. Für die Version 2.92 gilt Folgendes:
sha256sum transmission-2.92.tar.xz
3a8d045c306ad9acb7bf81126939b9594553a388482efa0ec1bfb67b22acd35f
Extrahieren Sie das Archiv:
tar -xJvf transmission-2.92.tar.xz
Gehen Sie zum Extraktionsverzeichnis:
cd transmission-2.92/
Jetzt müssen wir die Build-Abhängigkeiten für Folgendes installieren
transmission-gtk
:sudo apt-get build-dep transmission-gtk
Stellen wir sicher, dass alle Voraussetzungen installiert sind, gemäßdiese GitHub-Seite:
sudo apt-get install build-essential automake autoconf libtool pkg-config intltool libcurl4-openssl-dev libglib2.0-dev libevent-dev libminiupnpc-dev libappindicator-dev
Beachten Sie, dass ich es entfernt haben muss,
libminiupnpc5
dalibminiupnpc-dev
es ersetzt wurde.Führen Sie das Konfigurationsskript aus:
./configure
Die folgenden optionalen Argumente können an das Konfigurationsskript übergeben werden (aus dem Konfigurationsskript kopiert und eingefügt):
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-libtool-lock avoid locking (might break parallel builds) --disable-largefile omit support for large files --enable-external-dht Use system external-dht --enable-external-b64 Use system libb64 --enable-utp build µTP support --enable-external-natpmp Use system external-natpmp --enable-nls enable native language support --disable-nls do not use Native Language Support --enable-lightweight optimize libtransmission for low-resource systems: smaller cache size, prefer unencrypted peer connections, etc. --enable-cli build command-line client --enable-mac build Mac client --enable-daemon build daemon
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
both]
--with-aix-soname=aix|svr4|both
shared library versioning (aka "SONAME") variant to
provide on AIX, [default=aix].
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-sysroot[=DIR] Search for dependent libraries within DIR (or the
compiler's sysroot if not specified).
--with-crypto=PKG Use specified crypto library: auto (default),
openssl, cyassl, polarssl
--with-inotify Enable inotify support (default=auto)
--with-kqueue Enable kqueue support (default=auto)
--with-systemd-daemon Add support for systemd startup notification
(default is autodetected)
--with-gtk with Gtk
Überprüfen Sie, ob die Ausgabe des Konfigurationsskripts mit Folgendem übereinstimmt (falls Sie das möchten):
Configuration: Source code location: . Compiler: g++ Build libtransmission: yes * optimized for low-resource systems: no * µTP enabled: yes * crypto library: openssl Build Command-Line client: no Build GTK+ client: yes * libappindicator for an Ubuntu-style tray: yes Build Daemon: yes Build Mac client: no
Wenn nichts falsch ist, können Sie fortfahren, andernfalls müssen Sie das Problem beheben.
Kompilieren Sie das Programm, dies kann eine Weile dauern:
make
Wenn die Kompilierung erfolgreich ist, können Sie fortfahren, andernfalls müssen Sie das Problem beheben.
Vor der Installation möchten Sie wahrscheinlich die ziemlich alte stabile Version, die Sie möglicherweise installiert haben, aus dem Repository entfernen, aber es gibt eine Lösung: Sie möchten wahrscheinlich Ihre Einstellungen behalten. Wenn das der Fall ist, suchen Sie die Einstellungsdatei:
locate transmission/settings.json
Nehmen wir an, es befindet sich in Ihrem persönlichen
~/.config/
Verzeichnis. Erstellen Sie irgendwo eine Sicherungskopie, z. B. in Ihrem Home-Verzeichnis:cp ~/.config/transmission/settings.json ~/
Entfernen Sie nun die ursprünglich verpackte Version:
sudo apt-get purge transmission-gtk transmission-common
Installieren Sie Ihren kompilierten
transmission-gtk
Client:sudo make install
Wenn der
transmission-gtk
Client nicht gestartet ist, können Sie Ihre Einstellungsdatei an die gleiche Stelle verschieben oder besser zuerst die Unterschiede prüfen und dann entscheiden, ob ein einfaches Überschreiben in Ordnung ist oder nicht:mv ~/settings.json ~/.config/transmission/settings.json
Angenommen, Sie möchten ein Desktop-Element, dann kopieren Sie es und markieren Sie es als ausführbar:
cp ~/Downloads/transmission-2.92/gtk/transmission-gtk.desktop ~/Desktop/ chmod a+x ~/Desktop/transmission-gtk.desktop
Auf ähnliche Weise können Sie ein Menüelement erstellen. Sie müssen es nur hinzufügen
sudo
und sich nicht um den Ausführungsteil kümmern:sudo cp ~/Downloads/transmission-2.92/gtk/transmission-gtk.desktop /usr/share/applications/