Ubuntu

在 Linux Mint 18 上編譯 Transmission-GTK torrent 客戶端

  • July 7, 2020

如何transmission-gtk在 Linux Mint 18 或通常基於 Ubuntu 16.04 的系統上從原始碼編譯 torrent 客戶端?

假設我想:

  1. 刪除原始打包版本。
  2. 替換它,同時保留原始設置、桌面項目等。

在這個編譯過程中,要明確一點,它是為今天的目前版本 2.92 和基於 Ubuntu 16.04 的系統編寫的,如 Linux Mint 18。本指南可能與更高版本的系統和/或傳輸略有不同。

  1. 進入官方頁面;通過安全協議,目前官方頁面沒有重定向到HTTPS;您可以使用以下連結進入網頁:

https://transmissionbt.com/download/ 2. 導航到原始碼部分並下載目前的;它使用 GitHub 儲存庫;如果您在 CLI 中,則可以使用以下直接方法:

wget --continue https://github.com/transmission/transmission-releases/raw/master/transmission-2.92.tar.xz
  1. 檢查 SHA-256 雜湊匹配;它寫在官方下載頁面上;對於 2.92 版,以下內容適用:
sha256sum transmission-2.92.tar.xz
3a8d045c306ad9acb7bf81126939b9594553a388482efa0ec1bfb67b22acd35f
  1. 提取存檔:
tar -xJvf transmission-2.92.tar.xz
  1. 進入解壓目錄:
cd transmission-2.92/
  1. 現在我們需要安裝建構依賴項transmission-gtk
sudo apt-get build-dep transmission-gtk
  1. 根據此 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

請注意,我必須已將其刪除libminiupnpc5libminiupnpc-dev替換它。 8. 執行配置腳本:

./configure

以下可選參數可以傳遞給配置腳本(從配置腳本複制粘貼):

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. 檢查配置腳本的輸出是否與以下內容匹配(如果這是您想要的):
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

如果沒有問題,您可以繼續,否則您需要解決問題。 10. 編譯程序,這可能需要一段時間:

make

如果編譯成功,您可以繼續,否則您需要解決問題。 11. 在安裝它之前,您可能希望從儲存庫中刪除您可能已安裝的相當舊的穩定版本,但有一個問題:您可能希望保留您的設置,如果是這樣,請找到設置文件:

locate transmission/settings.json
  1. 假設它在您的個人~/.config/目錄中。在某處進行備份,例如到您的主目錄:
cp ~/.config/transmission/settings.json ~/
  1. 現在刪除原始打包版本:
sudo apt-get purge transmission-gtk transmission-common
  1. 安裝編譯好的transmission-gtk客戶端:
sudo make install
  1. 在沒有transmission-gtk啟動客戶端的情況下,您可以將設置文件移動到位,或者最好先檢查差異,然後決定是否只覆蓋它是否可以:
mv ~/settings.json ~/.config/transmission/settings.json
  1. 最後假設您想要一個桌面項目,然後將其複制並將其標記為執行檔:
cp ~/Downloads/transmission-2.92/gtk/transmission-gtk.desktop ~/Desktop/

chmod a+x ~/Desktop/transmission-gtk.desktop
  1. 同樣,您可以創建一個菜單項,您只需要添加sudo而不用操心執行位:
sudo cp ~/Downloads/transmission-2.92/gtk/transmission-gtk.desktop /usr/share/applications/

引用自:https://unix.stackexchange.com/questions/330809