
Как скомпилировать transmission-gtk
торрент-клиент из исходного кода на Linux Mint 18 или в целом на системах на базе Ubuntu 16.04?
Предположим, я хочу:
- Удалите оригинальную упакованную версию.
- Замените его, сохранив исходные настройки, элементы рабочего стола и т. д.
решение1
В этой процедуре компиляции следует прояснить, что она написана для текущей версии 2.92 и для систем на базе Ubuntu 16.04, таких как Linux Mint 18. Это руководство может немного отличаться для более поздних версий систем и/или Transmission.
Перейдите на официальную страницу; по защищенному протоколу официальная страница в настоящее время не перенаправляет на 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/