Linux Mint 18 で Transmission-GTK トレント クライアントをコンパイルする

Linux Mint 18 で Transmission-GTK トレント クライアントをコンパイルする

transmission-gtkLinux Mint 18 または一般的には Ubuntu 16.04 ベースのシステムで Torrent クライアントをソースからコンパイルするにはどうすればよいですか?

私が以下を行いたいとします:

  1. 元のパッケージバージョンを削除します。
  2. 元の設定、デスクトップ項目などを保持したまま置き換えます。

答え1

このコンパイル手順は、現在の最新バージョン 2.92 および Linux Mint 18 と同様に Ubuntu 16.04 ベースのシステム向けに記述されていることを明確にしておきます。このガイドは、システムや Transmission のそれ以降のバージョンでは若干異なる場合があります。

  1. 公式ページにアクセスしてください。安全なプロトコル経由で、現在公式ページは HTTPS にリダイレクトされません。以下のリンクを使用して Web ページに移動できます。

    https://transmissionbt.com/download/

  2. 案内するソースコードセクションを開いて、現在のものをダウンロードします。GitHub リポジトリを使用します。CLI を使用している場合は、次の直接的な方法を使用できます。

    wget --continue https://github.com/transmission/transmission-releases/raw/master/transmission-2.92.tar.xz
    
  3. SHA-256 ハッシュの一致を確認します。公式ダウンロード ページに記載されています。バージョン 2.92 の場合、次のようになります。

     sha256sum transmission-2.92.tar.xz
    
    3a8d045c306ad9acb7bf81126939b9594553a388482efa0ec1bfb67b22acd35f
    
  4. アーカイブを抽出します:

     tar -xJvf transmission-2.92.tar.xz
    
  5. 抽出ディレクトリに移動します:

     cd transmission-2.92/
    
  6. ここで、以下のビルド依存関係をインストールする必要がありますtransmission-gtk

     sudo apt-get build-dep transmission-gtk
    
  7. 前提条件がすべてインストールされていることを確認しましょう。この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
    

    libminiupnpc5注意してください、これを置き換えるために削除する必要があるのですlibminiupnpc-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
    

    何も問題がなければ続行できますが、そうでない場合は問題のトラブルシューティングを行う必要があります。

  2. プログラムをコンパイルします。これにはしばらく時間がかかる場合があります。

    make
    

    コンパイルが成功した場合は続行できますが、そうでない場合は問題のトラブルシューティングを行う必要があります。

  3. インストールする前に、リポジトリからインストールしたかなり古い安定バージョンを削除したいと思うかもしれませんが、ハッチがあります: 設定を保持したいと思うでしょう。その場合は、設定ファイルを見つけます:

    locate transmission/settings.json
    
  4. 個人ディレクトリにあると仮定します~/.config/。ホームディレクトリなど、どこかにバックアップを作成します。

    cp ~/.config/transmission/settings.json ~/
    
  5. 次に、元のパッケージバージョンを削除します。

    sudo apt-get purge transmission-gtk transmission-common
    
  6. コンパイルされたtransmission-gtkクライアントをインストールします。

    sudo make install
    
  7. transmission-gtkクライアントを起動していない間設定ファイルをそのまま移動することもできますが、まず違いを調べてから、上書きするだけでよいかどうかを判断してください。

    mv ~/settings.json ~/.config/transmission/settings.json
    
  8. 最後に、デスクトップ項目が必要な場合は、それをコピーして実行可能としてマークします。

    cp ~/Downloads/transmission-2.92/gtk/transmission-gtk.desktop ~/Desktop/
    
    chmod a+x ~/Desktop/transmission-gtk.desktop
    
  9. 同様に、メニュー項目を作成することもできます。sudo実行ビットを気にせずに、追加するだけで済みます。

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

関連情報