В этой процедуре компиляции должно быть ясно, что она написана для текущей текущей версии 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 --двоичная передача-2.92.tar.xz
3a8d045c306ad9acb7bf81126939b9594553a388482efa0ec1bfb67b22acd35f
Распакуйте архив:
tar -xJvf transfer-2.92.tar.xz
Перейдите в каталог извлечения:
cd-трансмиссия-2.92/
Теперь нам нужно установить зависимости сборки для transmission-gtk
:
sudo apt-get build-dep transfer-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
.
Запустите сценарий конфигурации:
./настроить
Следующие необязательные аргументы могут быть переданы в сценарий конфигурации (скопированы из сценария конфигурации):
Дополнительные функции: --disable-option-checking игнорировать нераспознанные --enable/--с опциями --disable-FEATURE не включать FEATURE (аналогично --enable-FEATURE=no) --enable-FEATURE[=ARG] включить FEATURE [ARG=yes] --enable-silent-rules менее подробный вывод сборки (отменить: "сделать V=1") --disable-silent-rules подробный вывод сборки (отменить: "сделать V=0") --enable-shared[=PKGS] создавать общие библиотеки [по умолчанию=да] --enable-static[=PKGS] создавать статические библиотеки [по умолчанию=да] --enable-fast-install[=PKGS] оптимизировать для быстрой установки [по умолчанию=да] --enable-отслеживание зависимостей не отвергать медленные экстракторы зависимостей --отключить отслеживание зависимостей ускоряет разовую сборку --disable-libtool-lock избежать блокировки (может нарушить параллельные сборки) --disable-largefile пропустить поддержку больших файлов --enable-external-dht Использовать системный внешний-dht --enable-external-b64 Использовать системную libb64 --enable-utp построить поддержку µTP --enable-внешний-natpmp Использовать системный внешний natpmp --enable-nls включить поддержку родного языка --disable-nls не использовать поддержку родного языка --enable-lightweight оптимизировать libtransmission для систем с низким уровнем ресурсов: меньший размер кеша, предпочтительнее незашифрованный одноранговый узел связи и т.д.--enable-cli построить клиент командной строки --enable-mac собрать клиент для Mac --enable-daemon демон сборки Дополнительные пакеты: --with-PACKAGE[=ARG] использовать PACKAGE [ARG=yes] --without-PACKAGE не использовать PACKAGE (так же, как --with-PACKAGE=no) --with-pic[=PKGS] попытаться использовать только объекты PIC/не PIC [по умолчанию=использовать оба] --with-aix-soname=aix|svr4|оба версия общей библиотеки (также известная как "SONAME") для предоставить в AIX, [по умолчанию=aix]. --with-gnu-ld предполагает, что компилятор C использует GNU ld [по умолчанию = нет] --with-sysroot[=DIR] Поиск зависимых библиотек в DIR (или sysroot компилятора, если он не указан). --with-crypto=PKG Использовать указанную криптобиблиотеку: авто (по умолчанию), openssl, cyassl, polarssl --with-inotify Включить поддержку inotify (по умолчанию = автоматически) --with-kqueue Включить поддержку kqueue (по умолчанию = auto) --with-systemd-daemon Добавить поддержку уведомления о запуске systemd (по умолчанию определяется автоматически) --with-gtk с Gtk
Проверьте, соответствуют ли выходные данные сценария конфигурации следующему (если вы этого хотите):
Конфигурация:
Расположение исходного кода: .
Компилятор: г++
Сборка libtransmission: да
* оптимизирован для малоресурсных систем: нет
* µTP включен: да
* криптобиблиотека: openssl
Собрать клиент командной строки: нет
Соберите клиент GTK+:да
* libappindicator для лотка в стиле Ubuntu: да
Демон сборки: да
Собрать клиент для Mac: нет
Если все в порядке, вы можете продолжить, в противном случае вам потребуется устранить проблему.
Скомпилируйте программу, это может занять некоторое время:
make
Если компиляция прошла успешно, вы можете продолжить, в противном случае вам потребуется устранить проблему.
Перед установкой вы, вероятно, захотите удалить довольно старую стабильную версию, которую вы, возможно, установили, из репозитория, но есть люк: вы, вероятно, захотите сохранить свои настройки, и если это так, найдите файл настроек. :
найдите передачу/settings.json
Предположим, что он находится в вашем личном каталоге ~/.config/
. Сделайте резервную копию где-нибудь, например. в свой домашний каталог:
cp ~/.config/transmission/settings.json ~/
Теперь удалите исходную упакованную версию:
sudo apt-get purge
Установите скомпилированный клиент 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/доля/приложения/
Если вы хотите выполнить поиск в родительском каталоге, используйте «../» в качестве пути. А затем исключите папку, в которой вы находитесь.
Может быть, что-то с этим связано? (Предположим, что вы находитесь в "currentfolder" при выполнении команды.
find../ -iname "file" -not -path "../currentfolder/*"
Будет выполнен поиск в родительской папке и подпапках в них. Я думаю, что лучший способ - искать сверху, и я не уверен, что есть другие способы.