Kompilieren des Transmission-GTK-Torrent-Clients unter Linux Mint 18

Kompilieren des Transmission-GTK-Torrent-Clients unter Linux Mint 18

Wie kompiliere ich transmission-gtkeinen Torrent-Client aus dem Quellcode auf Linux Mint 18 oder allgemein auf Ubuntu 16.04 basierenden Systemen?

Angenommen, ich möchte:

  1. Entfernen Sie die ursprünglich verpackte Version.
  2. 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.

  1. 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:

    https://transmissionbt.com/download/

  2. 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
    
  3. Ü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
    
  4. Extrahieren Sie das Archiv:

     tar -xJvf transmission-2.92.tar.xz
    
  5. Gehen Sie zum Extraktionsverzeichnis:

     cd transmission-2.92/
    
  6. Jetzt müssen wir die Build-Abhängigkeiten für Folgendes installieren transmission-gtk:

     sudo apt-get build-dep transmission-gtk
    
  7. 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, libminiupnpc5da libminiupnpc-deves ersetzt wurde.

  8. 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
  1. Ü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.

  2. 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.

  3. 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
    
  4. 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 ~/
    
  5. Entfernen Sie nun die ursprünglich verpackte Version:

    sudo apt-get purge transmission-gtk transmission-common
    
  6. Installieren Sie Ihren kompilierten transmission-gtkClient:

    sudo make install
    
  7. Wenn der transmission-gtkClient 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
    
  8. 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
    
  9. Auf ähnliche Weise können Sie ein Menüelement erstellen. Sie müssen es nur hinzufügen sudound sich nicht um den Ausführungsteil kümmern:

    sudo cp ~/Downloads/transmission-2.92/gtk/transmission-gtk.desktop /usr/share/applications/
    

verwandte Informationen