Установить GTK Murrine в домашний каталог?

3

Немного иронии в том, что я не являюсь суперпользователем на этой машине, но наш сервер разработки - FreeBSD с установленными на нем X11 и GTK 2. Я обнаружил, что могу использовать свои собственные темы на сервере, перетаскивая их, ~/.themesа затем помещая include "/home/my-user-name/.themes/path/to/theme/gtk-2.0/gtkrc"в первую строку ~/.gtkrc-2.0.

Тем не менее, некоторые из тем, которые я использовал, зависят от того, что было установлено. Можно ли скомпилировать и включить движок без какого-либо суперпользователя ( suили sudo) доступа вообще?

p0lar_bear
источник
Если ваш домашний каталог не смонтирован no-exec или аналогичными ограничениями, тогда да. Конечно вы можете. Это может быть больше работы, чем запросить root для установки / usr / ports / x11-themes / gtk-murrine-engine, и вам придется обновлять его самостоятельно, когда выйдет более новая версия, но ничто не мешает вам сделать это.
Хеннес
Если вы определили, что Murrineтребуется sudo, то вам не повезло
Ramhound
@Ramhound Большинство инструкций, которые я прочитал, предназначены для людей, которые полностью контролируют машину, и, как представляется, обычным случаем является установка движка для всех пользователей. Я все еще вхожу в мир * nix от Windows и изучаю лучшие практики, соглашения и т. Д., И половина проблемы заключается в том, что я не знаю, где искать половину времени, сохраняя при этом мое мнение, что практически все возможно если вы смотрите достаточно усердно или задаете вопросы. То, что я определил, что Муррин «требуется» для установки sudo, основывалось на том, какую информацию я мог найти, и на предыдущем (хотя и ограниченном) опыте.
p0lar_bear

Ответы:

4

Согласно ответу Гравити, каталог ~/.gtk-2.0находится в движке GTK $PATH. Если это так, то вы сможете скачать исходники Муррин отсюда и запустить:

tar xvzf murrine-0.90.3.tar.gz
cd murrine-0.90.3/
./configure ---prefix=~/.gtk-2.0 --libdir=~/.gtk-2.0
make
make install

Для этого следует установить движок, ~/.gtk-2.0для которого вам не понадобится root-доступ.

terdon
источник
1
Это на самом деле --libdir, так как GTK не смотрит внутрь ~/.gtk-2.0/lib/, а ~/.gtk-2.0/прямо.
13
1
@ Ты имеешь ввиду @ grawity --prefix=~/.gtk-2.0 --libdir=~/.gtk-2.0?
Тердон
Я получил этот вывод с любой конфигурацией, когда я запускаю make, точки с запятой вместо разрывов строк:Making all in schema; make: don't know how to make murrine.xml. Stop; *** Error code 1; Stop in /m/home/<my name>/murrine-0.90.3.
p0lar_bear
Ах, я переименовал schema / murrine.xml.in в murrine.xml, и он скомпилирован.
p0lar_bear
1
Хорошо, я получил это без инцидентов, хотя я должен был кое-что сделать! Во-первых, вместо этого я использовал murrine 0.98.1, поскольку тема, которую я использовал, жаловалась на неизвестные идентификаторы. Во-вторых, мне пришлось переименовать этот файл XML выше. В-третьих, после использования команд @terdon, поставленных в качестве ответа, мне пришлось перейти ~/.gtk-2.0/lib/gtk-2.0/{abi-version}к ~/.gtk-2.0/{abi-version}. После всего этого, он работает на 100%! И тема, которую я тестирую, здесь . Что я могу сказать, мне нравится Ambiance!
p0lar_bear
5

Вы можете установить движки тем в ~/.gtk-2.0. В последний раз, когда я проверял, путь поиска был:

~ / .Gtk-2.0 / {ABI-версия} / {MACHTYPE} / Двигатели / Библиотека {двигатель} .dll
~ / .Gtk-2.0 / {ABI-версия} / {MACHTYPE} / Двигатели / Библиотека {} двигатель .la
~ / .Gtk-2.0 / {ABI-версия} / двигатели / Библиотека {двигатель} .dll
~ / .Gtk-2.0 / {ABI-версия} / двигатели / Библиотека {} двигатель .la
~ / .Gtk-2.0 / {MACHTYPE} / Двигатели / Библиотека {двигатель} .dll
~ / .Gtk-2.0 / {MACHTYPE} / Двигатели / Библиотека {} двигатель .la
~ / .Gtk-2.0 / Двигатели / Библиотека {двигатель} .dll
~ / .Gtk-2.0 / Двигатели / Библиотека {} двигатель .la
{Префикс} {/lib/gtk-2.0/ ABI-версия} / {MACHTYPE} / Двигатели / Библиотека {двигатель} .dll
{Префикс} {/lib/gtk-2.0/ ABI-версия} / {MACHTYPE} / Двигатели / Библиотека {} двигатель .la
{Префикс} {/lib/gtk-2.0/ ABI-версия} / двигатели / Библиотека {двигатель} .dll
{Префикс} {/lib/gtk-2.0/ ABI-версия} / двигатели / Библиотека {} двигатель .la
{Префикс} {/lib/gtk-2.0/ MACHTYPE} / Двигатели / Библиотека {двигатель} .dll
{Префикс} {/lib/gtk-2.0/ MACHTYPE} / Двигатели / Библиотека {} двигатель .la
{Префикс} {/lib/gtk-2.0/engines/lib двигатель} .dll
{Префикс} {/lib/gtk-2.0/engines/lib двигатель} .la

где {abi-version}, по-видимому 2.10.0, {machtype}- тип машины в стиле GNU ( $MACHTYPEв Bash) и {engine}имя движка (например murrine). {prefix}Обычно /usrна Linux или каталог установки программы (например C:\Program Files\Pidgin) на Windows.

grawity
источник
1
Как вы узнали этот путь?
Тердон
2
@terdon: Я заставил его искать несуществующий движок и наблюдал с помощью Process Monitor (strace на Linux).
Гравитация
Умный умный ...
тердон
У меня установлены «adwaita» и «murrine» ~/.gtk-2.0/engines/, но GTK не находит их, когда я пытаюсь установить тему, которая использует одну из них; Я получаю сообщение об ошибке «Эта тема не будет выглядеть так, как задумано, поскольку требуемый движок тем GTK +« adwaita »не установлен». Есть ли что-то, что может помешать моей системе (на работе, поэтому у меня нет root-доступа) искать мою ~/.gtk-2.0директорию при запуске, которую я должен проверить?
villapx
0

Я хотел скомпилировать и настроить тему Redmond. Я следовал идее @ grawity об использовании strace, но поместил символическую ссылку на мой скомпилированный файл .so, поэтому мне не нужно всегда копировать его при перекомпиляции.

Я поместил символическую ссылку в /home/sashoalm/.gtk-2.0/enginesи указал на мой каталог сборки, где /home/sashoalm/Workspace/redmond/gtk2-engines-2.20.2/engines/redmond/.libs, где libredmond95.soсоздается компилятором, и он работает!

sashoalm
источник