如何transmission-gtk
在 Linux Mint 18 或一般基于 Ubuntu 16.04 的系统上从源代码编译 torrent 客户端?
假设我想:
- 删除原来的打包版本。
- 替换它,同时保留原来的设置、桌面项等。
答案1
在此编译过程中,需要明确的是,它是为当今的当前版本 2.92 以及基于 Ubuntu 16.04 的系统(如 Linux Mint 18)编写的。本指南可能在更高版本的系统和/或传输上略有不同。
前往官方页面;通过安全协议,目前官方页面没有重定向到HTTPS;您可以使用下面的链接访问该网页:
导航源代码部分并下载当前的部分;它使用 GitHub 存储库;如果你在 CLI 中,你可以使用这个直接方法:
wget --continue https://github.com/transmission/transmission-releases/raw/master/transmission-2.92.tar.xz
检查 SHA-256 哈希匹配;官方下载页面上有写;对于版本 2.92,以下内容适用:
sha256sum transmission-2.92.tar.xz
3a8d045c306ad9acb7bf81126939b9594553a388482efa0ec1bfb67b22acd35f
提取存档:
tar -xJvf transmission-2.92.tar.xz
进入解压目录:
cd transmission-2.92/
现在我们需要安装构建依赖项
transmission-gtk
:sudo apt-get build-dep transmission-gtk
让我们确保所有先决条件都已安装,根据这个 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
替换它。运行配置脚本:
./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
检查配置脚本的输出是否与以下内容匹配(如果这是您想要的):
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
如果没有问题,您可以继续,否则您需要解决问题。
编译程序,这可能需要一段时间:
make
如果编译成功则可以继续,否则需要排查问题。
在安装之前,您可能希望从存储库中删除已安装的相当旧的稳定版本,但有一个问题:您可能希望保留您的设置,如果是这样,请找到设置文件:
locate transmission/settings.json
假设它在您的个人
~/.config/
目录中。在某处进行备份,例如备份到您的主目录中:cp ~/.config/transmission/settings.json ~/
现在删除原来的打包版本:
sudo apt-get purge transmission-gtk transmission-common
安装编译好的
transmission-gtk
客户端:sudo make install
当客户端没有
transmission-gtk
启动时,您可以将设置文件移动到位,或者最好先检查差异,然后决定是否覆盖它:mv ~/settings.json ~/.config/transmission/settings.json
最后假设您想要一个桌面项目,然后复制它并将其标记为可执行文件:
cp ~/Downloads/transmission-2.92/gtk/transmission-gtk.desktop ~/Desktop/ chmod a+x ~/Desktop/transmission-gtk.desktop
同样,您可以创建一个菜单项,您只需要添加
sudo
而不用担心执行位:sudo cp ~/Downloads/transmission-2.92/gtk/transmission-gtk.desktop /usr/share/applications/