Compilación del cliente torrent Transmission-GTK en Linux Mint 18

Compilación del cliente torrent Transmission-GTK en Linux Mint 18

¿Cómo compilo transmission-gtkun cliente torrent desde la fuente en Linux Mint 18 o, en general, en sistemas basados ​​en Ubuntu 16.04?

Suponiendo que quiero:

  1. Elimine la versión empaquetada original.
  2. Reemplácelo, conservando la configuración original, el elemento del escritorio, etc.

Respuesta1

En este procedimiento de compilación, quede claro que está escrito para la versión actual 2.92 y para sistemas basados ​​en Ubuntu 16.04 como lo es Linux Mint 18. Esta guía puede diferir ligeramente en versiones posteriores de sistemas y/o Transmission.

  1. Ir a la página oficial; sobre protocolo seguro, actualmente la página oficial no redirige a HTTPS; Puede utilizar el siguiente enlace para acceder a la página web:

    https://transmissionbt.com/download/

  2. Navegar aCódigo fuentesección y descargar la actual; utiliza el repositorio de GitHub; Si está en CLI, puede utilizar este método directo:

    wget --continue https://github.com/transmission/transmission-releases/raw/master/transmission-2.92.tar.xz
    
  3. Verifique las coincidencias de hash SHA-256; está escrito en la página de descarga oficial; para la versión 2.92 se aplica lo siguiente:

     sha256sum transmission-2.92.tar.xz
    
    3a8d045c306ad9acb7bf81126939b9594553a388482efa0ec1bfb67b22acd35f
    
  4. Extrae el archivo:

     tar -xJvf transmission-2.92.tar.xz
    
  5. Vaya al directorio de extracción:

     cd transmission-2.92/
    
  6. Ahora necesitamos instalar las dependencias de compilación para transmission-gtk:

     sudo apt-get build-dep transmission-gtk
    
  7. Asegurémonos de que todos los requisitos previos estén instalados, de acuerdo conesta página de GitHub:

     sudo apt-get install build-essential automake autoconf libtool pkg-config intltool libcurl4-openssl-dev libglib2.0-dev libevent-dev libminiupnpc-dev libappindicator-dev
    

    Tenga en cuenta que debo haberlo eliminado libminiupnpc5ya que libminiupnpc-devlo reemplaza.

  8. Ejecute el script de configuración:

     ./configure
    

    Los siguientes argumentos opcionales se pueden pasar al script de configuración (copiados y pegados del script de configuración):

    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. Compruebe si el resultado del script de configuración coincide con lo siguiente (si eso es lo que desea):

     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
    

    Si no hay ningún problema, puede continuar; de lo contrario, deberá solucionar el problema.

  2. Compile el programa, esto puede tardar un poco:

    make
    

    Si la compilación se realiza correctamente, puede continuar; de lo contrario, deberá solucionar el problema.

  3. Antes de instalarlo, probablemente querrás eliminar la versión estable bastante antigua que hayas instalado del repositorio, pero hay un problema: probablemente querrás conservar tu configuración y, si es así, localiza el archivo de configuración:

    locate transmission/settings.json
    
  4. Supongamos que está en su ~/.config/directorio personal. Haga una copia de seguridad en algún lugar, por ejemplo en su directorio personal:

    cp ~/.config/transmission/settings.json ~/
    
  5. Ahora elimine la versión empaquetada original:

    sudo apt-get purge transmission-gtk transmission-common
    
  6. Instale su transmission-gtkcliente compilado:

    sudo make install
    
  7. Mientras no tenga el transmission-gtkcliente iniciado, puede mover su archivo de configuración a su lugar, o mejor primero examinar las diferencias y luego decidir si simplemente sobrescribirlo estaría bien o no:

    mv ~/settings.json ~/.config/transmission/settings.json
    
  8. Finalmente, supongamos que desea un elemento de escritorio, cópielo y márquelo como ejecutable:

    cp ~/Downloads/transmission-2.92/gtk/transmission-gtk.desktop ~/Desktop/
    
    chmod a+x ~/Desktop/transmission-gtk.desktop
    
  9. De manera similar, puedes crear un elemento de menú, solo necesitas agregar sudoy no molestarte con el bit de ejecución:

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

información relacionada