Установка xneur на mandriva linux

Или сказ о том, как для установки полутора метровой программы можно доставить 120 метров зависимостей. Linux as is ))

X Neural Switcher это прога по типу виндовой PuntoSwitcher. Принцип прост — если вдруг забыли переключить раскладку, то программа делает это за нас.
Итак, по порядку. Для начала нужен сам демон xneur. Если вы счастливый деберас, то проблем не возникнет (я думаю), там есть готовые репы. Остальным нужно компилить из исходников.
В начале идут стандартные телодвижения:

[alex@localhost Desktop]$ wget http://dists.xneur.ru/release-0.9.6/tgz/xneur-0.9.6.tar.bz2
--2009-09-19 14:52:34--  http://dists.xneur.ru/release-0.9.6/tgz/xneur-0.9.6.tar.bz2
Распознаётся dists.xneur.ru... 88.212.196.163
Устанавливается соединение с dists.xneur.ru|88.212.196.163|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 1053044 (1,0M) [application/octet-stream]
Сохраняется в каталог: `xneur-0.9.6.tar.bz2'.
100%[] 1 053 044    131K/s   в 11s
2009-09-19 14:52:45 (96,3 KB/s) - `xneur-0.9.6.tar.bz2' сохранён [1053044/1053044]
[alex@localhost Desktop]$ tar -xjf xneur-0.9.6.tar.bz2
[alex@localhost Desktop]$ cd xneur-0.9.6
[alex@localhost xneur-0.9.6]$

Конфигурим и ловим первый привет:

./configure
..............................
checking for X... no
configure: error: Can't locate your X11 installation

Не видит иксы, хотя они присутствуют и я сижу же не в консоли. Лечится достановкой девел пакетов ксорга.
Первый прикол:

[root@localhost xneur-0.9.6]# urpmi libxorg-X11-devel
Для удовлетворения зависимостей будут установлены следующие пакеты:
   Пакет                          Версия       Релиз         Платформа
(источник «Main»)
  libapplewm-devel               1.0.0        7mdv2009.1    i586
  libapplewm7                    1.0.0        7mdv2009.1    i586
  libbzip2-devel                 1.0.5        6mdv2010.0    i586
  libdrm-devel                   2.4.13       1mdv2010.0    i586
  libfs-devel                    1.0.2        1mdv2010.0    i586
  libice6-devel                  1.0.6        1mdv2010.0    i586
  liblbxutil-devel               1.0.1        8mdv2010.0    i586
  liblbxutil1                    1.0.1        8mdv2010.0    i586
  libmesagl1-devel               7.5.1        1mdv2010.0    i586
  libmesaglu1-devel              7.5.1        1mdv2010.0    i586
  libmesaglw1                    7.5.1        1mdv2010.0    i586
  liboldx6-devel                 1.0.1        6mdv2010.0    i586
  libpciaccess-devel             0.10.8       1mdv2010.0    i586
  libpthread-stubs               0.1          6mdv2010.0    i586
  libx11_6-devel                 1.2.2        1mdv2010.0    i586
  libxau6-devel                  1.0.5        1mdv2010.0    i586
  libxaw-devel                   1.0.6        1mdv2010.0    i586
  libxcb-composite0              1.3          6mdv2010.0    i586
  libxcb-record0                 1.3          6mdv2010.0    i586
  libxcb-render0                 1.3          6mdv2010.0    i586
  libxcb-shape0                  1.3          6mdv2010.0    i586
  libxcb-shm0                    1.3          6mdv2010.0    i586
  libxcb-xf86dri0                1.3          6mdv2010.0    i586
  libxcb-xfixes0                 1.3          6mdv2010.0    i586
  libxcb-xinerama0               1.3          6mdv2010.0    i586
  libxcb-xvmc0                   1.3          6mdv2010.0    i586
  libxevie-devel                 1.0.2        6mdv2010.0    i586
  libxext6-devel                 1.0.5        1mdv2010.0    i586
  libxfixes3-devel               4.0.3        5mdv2010.0    i586
  libxfontcache1                 1.0.4        4mdv2010.0    i586
  libxfontcache1-devel           1.0.4        4mdv2010.0    i586
  libxft-devel                   2.1.13       3mdv2010.0    i586
  libxkbui1                      1.0.2        6mdv2010.0    i586
  libxorg-x11-devel              7.3          5mdv2010.0    i586
  libxrandr2-devel               1.3.0        2mdv2010.0    i586
  libxrender1-devel              0.9.4        5mdv2010.0    i586
  libxres1-devel                 1.0.3        4mdv2010.0    i586
  libxscrnsaver1-devel           1.2.0        2mdv2010.0    i586
  libxt6-devel                   1.0.6        1mdv2010.0    i586
  libxv1-devel                   1.0.4        3mdv2010.0    i586
(источник «C2»)
  libdmx-devel                   1.0.2        5mdv2009.1    i586
  libdrm_nouveau1                2.4.13       1mdv2010.0    i586
  libfontconfig-devel            2.7.3        1mdv2010.0    i586
  libfontenc-devel               1.0.4        6mdv2010.0    i586
  libfs6                         1.0.2        1mdv2010.0    i586
  libmesaglut3                   7.5.1        1mdv2010.0    i586
  libmesaglut3-devel             7.5.1        1mdv2010.0    i586
  libmesaglw1-devel              7.5.1        1mdv2010.0    i586
  liboldx6                       1.0.1        6mdv2010.0    i586
  libpixman-1-devel              0.16.0       1mdv2010.0    i586
  libsm6-devel                   1.1.1        1mdv2010.0    i586
  libwindowswm-devel             1.0.0        7mdv2010.0    i586
  libwindowswm7                  1.0.0        7mdv2010.0    i586
  libxcb-damage0                 1.3          6mdv2010.0    i586
  libxcb-devel                   1.3          6mdv2010.0    i586
  libxcb-glx0                    1.3          6mdv2010.0    i586
  libxcb-randr1                  1.3          6mdv2010.0    i586
  libxcb-res0                    1.3          6mdv2010.0    i586
  libxcb-screensaver0            1.3          6mdv2010.0    i586
  libxcb-sync0                   1.3          6mdv2010.0    i586
  libxcb-xevie0                  1.3          6mdv2010.0    i586
  libxcb-xprint0                 1.3          6mdv2010.0    i586
  libxcb-xtest0                  1.3          6mdv2010.0    i586
  libxcb-xv0                     1.3          6mdv2010.0    i586
  libxcomposite1-devel           0.4.0        4mdv2010.0    i586
  libxcursor-devel               1.1.10       1mdv2010.0    i586
  libxdamage-devel               1.1.1        4mdv2010.0    i586
  libxdmcp6-devel                1.0.2        7mdv2010.0    i586
  libxevie1                      1.0.2        6mdv2010.0    i586
  libxfont1-devel                1.4.0        2mdv2010.0    i586
  libxi-devel                    1.2.1        2mdv2010.0    i586
  libxinerama1-devel             1.0.3        3mdv2010.0    i586
  libxkbfile-devel               1.0.5        3mdv2010.0    i586
  libxkbui-devel                 1.0.2        6mdv2010.0    i586
  libxmu6-devel                  1.0.4        5mdv2010.0    i586
  libxorg-x11-devel              7.3          5mdv2010.0    i586
  libxpm-devel                   3.5.7        5mdv2010.0    i586
  libxres1                       1.0.3        4mdv2010.0    i586
  libxtrap-devel                 1.0.0        9mdv2010.0    i586
  libxtrap6                      1.0.0        9mdv2010.0    i586
  libxtst6-devel                 1.0.3        4mdv2010.0    i586
  libxvmc1-devel                 1.0.4        5mdv2010.0    i586
  libxxf86dga-devel              1.0.2        6mdv2010.0    i586
  libxxf86misc-devel             1.0.1        8mdv2010.0    i586
  libxxf86vm-devel               1.0.2        4mdv2010.0    i586
  mesa                           7.5.1        1mdv2010.0    i586
  x11-proto-devel                7.4          25mdv2010.0   i586
  x11-server-devel               1.6.3.901    1mdv2010.0    i586
  x11-xtrans-devel               1.2.4        1mdv2010.0    i586
(источник «PLF Free»)
  libfreetype6-devel             2.3.9        2plf2010.0    i586
Будет использовано 40МБ дополнительного дискового пространства.
Будет загружено 5.9МБ пакетов.
Установить 90 пакетов? (Y/n)

Ставим, а фигли делать.
Пробуем снова конфигурить

./configure
...........................
checking for X11... yes
checking for GSTREAMER... configure: error: Package requirements (gstreamer-0.10 >= 0.10.6) were not met:

No package 'gstreamer-0.10' found

Гстример нужен чтобы при наборе в неправильной раскладке программа клацала, обращая внимание на ввод. Можно сконфигурить с —with-sound=no, тогда он не нужен. Но я решил сделать со всеми фичами.
Доставляем гстример + немного необходимого для него

[root@localhost xneur-0.9.6]# urpmi libgstreamer0.10-devel
Для удовлетворения зависимостей будут установлены следующие пакеты:
   Пакет                          Версия       Релиз         Платформа
(источник «Main»)
  glib-gettextize                2.21.6       1mdv2010.0    i586
  libcheck-devel                 0.9.6        3mdv2010.0    i586
(источник «C2»)
  libglib2.0-devel               2.21.6       1mdv2010.0    i586
  libgstreamer0.10-devel         0.10.24      1mdv2010.0    i586
Будет использовано 43МБ дополнительного дискового пространства.
Будет загружено 6МБ пакетов.
Установить 4 пакетов? (Y/n)

Конфигурим далее, третий подход

checking for aspell header... no
configure: error: Can't locate your aspell headers

Нужен аспелл, либа для проверки правописания. Нужно доставить:

  • Сам аспелл
  • Аспелл для текущей локали, aspell-ru у меня
  • libaspell-devel

Доставили аспелл, пробуем конфигурить дальше

checking for xosd-config bin... no
configure: error: Can't locate your xosd-config bin

Четвертый подход, опять неудача. Нужен libxosd2-devel. Доставляем, там немного.
Снова конфигурим, пятый раз

checking for LIBNOTIFY... configure: error: Package requirements (libnotify >= 0.4.0) were not met:

No package 'libnotify' found

Уже на автомате набираю

# urpmi libnotify-devel
Для удовлетворения зависимостей будут установлены следующие пакеты:
   Пакет                          Версия       Релиз         Платформа
(источник «Main»)
  libatk1.0-devel                1.27.90      1mdv2010.0    i586
  libcairo-devel                 1.8.8        1mdv2010.0    i586
  libgtk+2.0_0-devel             2.17.11      3mdv2010.0    i586
  pango-doc                      1.25.6       1mdv2010.0    i586
(источник «C2»)
  libdbus-1-devel                1.2.16       1mdv2010.0    i586
  libdbus-glib-1_2-devel         0.82         1mdv2010.0    i586
  libgdk_pixbuf2.0_0-devel       2.17.11      3mdv2010.0    i586
  libnotify-devel                0.4.5        2mdv2010.0    i586
  libpango1.0-devel              1.25.6       1mdv2010.0    i586
  libpng-devel                   1.2.40       1mdv2010.0    i586
Будет использовано 43МБ дополнительного дискового пространства.
Будет загружено 5МБ пакетов.
Установить 10 пакетов? (Y/n)

Еще куча пакетов доставлена, снова конфигурим и о чудо! Он сконфигурился

xneur 0.9.6 configured successfully:

        Installing into:                /usr/local

        Compiler flags:                 -Wall -Wextra -Werror -g0 -fPIC -std=gnu99
        Linker flags:

        X11 compiler flags:
        X11 linker flags:               -lX11

        Pcre compiler flags:
        Pcre linker flags:              -lpcre

        Gstreamer compiler flags:       -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2
        Gstreamer linker flags:         -pthread -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lglib-2.0

        Aspell compiler flags:          -I/usr/include
        Aspell linker flags:            -L/usr/lib -laspell

        Xosd compiler flags:            -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -I/usr/include -Wall
        Xosd linker flags:              -L/usr/lib -lxosd -lpthread -lXext -lX11

        Libnotify compiler flags:       -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12
        Libnotify linker flags:         -lnotify -lgtk-x11-2.0 -ldbus-glib-1 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgmodule-2.0 -ldbus-1 -lpthread -lrt -lgobject-2.0 -lglib-2.0

Компилим и устанавливаем, тут все просто. Это встал сам демон. Еще есть гуй для трея, показывает иконку, позволяет конфигурировать прогу. Его желательно тоже поставить. У меня гном, поэтому для меня gxneur. Под кеды, соответственно, kxneur, которого под последнюю версию нет, что-то у них там проблемы с кедами.
Забираем пакет тут. Качаем, распаковываем, пробуем конфигурить и получаем

checking for XNEUR... configure: error: Package requirements (xnconfig = 0.9.6) were not met:

No package 'xnconfig' found

Почему то не видит установщик уже установленного xneur, не проверяет его диру. Лечится созданием симлинка.

# ln -s /usr/local/lib/pkgconfig/xnconfig.pc /usr/lib/pkgconfig

Это еще не конец ))

checking for XNEUR... yes
checking for GLADE... configure: error: Package requirements (libglade-2.0 >= 2.6.0) were not met:

No package 'libglade-2.0' found
# urpmi libglade2.0_0-devel

Это был последний шаг )) gXneur успешно сконфигурировался )) Дальше дело техники.

gxneur 0.9.6 configured successfully:

        Installing into:        /usr/local

        Compiler flags:         -g -O2

        XNeur flags:            -I/usr/local/include
        XNeur libs:             -L/usr/local/lib -lxnconfig -lpcre

Happy end!!!
Снимок

0.00 avg. rating (0% score) - 0 votes

29 комментариев

  • Елки, для профессионалов статья.

  • Классно, вещь полезная!.

  • Вот из-за всего этого геммороя не люблю линукс

    • Neolot, а ты юзаешь линь?

  • Я сисадмин в прошлом, приходилось возиться, но домой себе не поставлю: не люблю делать сложно простые вещи, а возраст активных экспериментов уже прошел)

  • Инструкция полезная, но как то отдаю предпочтение виндоусу в домашней обстаноке.

    • JJ, а я вот второй год на линуксе. Винда есть для игр на отдельном винте, а винт в тумбочке, а тумбочка на дереве… )) Вобщем, не подключен он. И как-то привык, работать так вообще норм, что на серверах линь, что дома.

  • Мосье не пробовал в мандриве подключать репозитарии EduMandriva?
    Много полезностей там уже собрано в пакеты 🙂

    • Allin, нет, не пробовал. Как-то даже и не догадался оттуда взять.

  • Блин, сколько телодвижений-то надо… 🙁 Останусь-ка я на 0.9.5, а то с моим инетом выкачивать зависимости замучаюсь, а деб-пакеты разработчики-подлецы уже 2 версии подряд не собирают…

  • спасибо дружище, немного недопетрил до создания ссылки. все получилось

  • Алекс, огромаднейшее спасибо!
    Правда, симлинк у меня так и не получился, я тупо скопировал с-под-рута этот чортов xnconfig.pc из /usr/local/lib/pkgconfig/ в  /usr/lib/pkgconfig, и вуаля — gxneur появился в трее! А то ведь автопереключение я и в Пунте всегда выключал, а файл-конфиг демона, где, согласно документации, можно переключить его в чисто ручной режим, так и не нашёл, только для этого и ставил ГУИ. Учитывая, что я впервые установил себе Линукс с сутки назад, прошу сильно не тыкать пальцем и не обзываться ламером).

    • Да незачто ))

  • да пост хороший, хотел и себе поставить на mandriva 2010 x86_64 , )) невышло, там как потянуллись конфликты с i586 , начали появлятся осератевшие пакеты, бросил я это гиблое дело , пол дня возится на установку простой тудзы… еслм бы продолжил  наверно весь дистриб пришлось бы менять на 586 )))

  • Отличный пост!
    респект

  • У меня помимо этих пакетов еще и libpcre, gtk+-2.0 (попытка поюзать сырую Ubuntu10.04 beta2 в марте)

  • Спасибо, только ты и помог. ЗАРАБОТАЛО! В источнике eduMandriva версии .9.7 и .9.8 — они ставятся, но не работают, только флаг меняют, а в последней, так и русского флага нет. Хотя, наверно, если таким же макаром действовать, как у тебя выше, то можно и их заставить работать. В общем из проги установки и источника eduMandriva ничего путнего не выходит.

  • Спасибо большое! Отличная инструкция!

  • Респектуха за хорошую статью, которая неплохо так сэкономила время на установку.

  • К чему такие заморочки?

    Не проще ли будет установить готовые пакеты из репозитория EEduMandriva? Или через онлайн-установщик С ресурса Za1raz: http://www.mandriva.ru/community/online_instalyator_programmnogo_obespecheniya/

    Хотя, конечно, настоящие линуксоиды не ищут лёгких путей…

    Уже с версии Mandriva 2007 я перешёл на установку готовых пакетов, и ничего — мир не рухнул

  • А мне при установке gxneur написал вместо No package ‘xnconfig found
    No package ‘xneur’ found…
    xneur собрался, из терминала запускается
    как исправить?

  • ставил из репозитория (Ubuntu 10.04)-после обновления начал глючить (часто не переключает раскладку,невозможно запустить вручную), нашёл информацию,что это баг версии 0.11,скачал исходники 0.10.0,скомпилил -по ходу были те же проблемы ,что описаны в статье за исключением  проблемы с xnconfig-тут всё нормально однако после установки в списке приложений xneur не появился а из терминала отсылает на оф сайт-хотя комп не перезагружался-вполне вероятно настройки появятся после перезагрузки

  • Добрый день.
    Статья отличная, жаль не на все случаи жизни ))
    Дистрибутив Мандрива 2010,2
    При конфигурировании прошел все ваши грабли, но в конце выдало вот это:
     
    ./configure: line 10891: syntax error near unexpected token `0.16.1′
    ./configure: line 10891: `AM_GNU_GETTEXT_VERSION(0.16.1)’
    Вот этот кусок из файла configure:
     
     

    fi
    if test -n «$PKG_CONFIG»; then
    _pkg_min_version=0.20
    { $as_echo «$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version» >&5
    $as_echo_n «checking pkg-config is at least version $_pkg_min_version… » >&6; }
    if $PKG_CONFIG —atleast-pkgconfig-version $_pkg_min_version; then
    { $as_echo «$as_me:${as_lineno-$LINENO}: result: yes» >&5
    $as_echo «yes» >&6; }
    else
    { $as_echo «$as_me:${as_lineno-$LINENO}: result: no» >&5
    $as_echo «no» >&6; }
    PKG_CONFIG=»»
    fi
    fi
    AM_GNU_GETTEXT_VERSION(0.16.1)
    AM_GNU_GETTEXT(external)
    for ac_header in sys/io.h
    do :
    ac_fn_c_check_header_mongrel «$LINENO» «sys/io.h» «ac_cv_header_sys_io_h» «$ac_includes_default»
    if test «x$ac_cv_header_sys_io_h» = x»»yes; then :
    cat >>confdefs.h <<_ACEOF
    #define HAVE_SYS_IO_H 1
    _ACEOF
    fi
    done

     
     
    В интернете ничего не нашел… Подскажите, что дальше делать, в какую сторону копать?
     

    • Может закоментить попробовать? ))
      Думаю в сторону геттекста посмотреть стоит

  • Не получается. Пробовал закомментировать. В общем мучался, мучался, надоело. По совету insdom установил через онлайн установщик ((
    Не всегда корректно (опять же с punto switcher сравниваю), но работает.
    Спасибо всем.
    P.S. Gettext установлен был. Но там еще какие-то ошибки вылезали, уже не помню, что именно.

    • Не всегда корректно (опять же с punto switcher сравниваю), но работает.

      А я вообще забил, потому как набираю в основном код, а он его крайне любит в русский перевести ))

  • Я пока в кодеры не лезу, но научиться хочу. Со временем думаю все получится 🙂

  • у меня он, конечно, в три раза больше либов потребовал, и синтаксис немного другой: -dev вместо -devel, названия с  незначительными изменениями, ну и apt-get (у меня не Мандрива) вместо urpmi

    но статья реально в точку, теперь демон не слетает, правда нет звука:

    Ошибка создания контекста gstreamer

    и некорректно работает ручное переключение, съедает буквы и пробелы, еще вот такое выдает:

     [ERR] 13:58:08 Ошибка определения символа для клавиши с кодом 131 и модификатором 0x2000!
    [ERR] 13:58:08 Попробуйте запустить программу командой «env LC_ALL=<LOCALE> xneur», 
    где LOCALE можно получить коммандой «locale -a»

    ясен пень этот совет не помогает

    как бы то ни было, в режиме автоматической раскладки все пашет, спасибо за статью
    поду ковырять дальше, уж очень мне нравится, когда комп клацает, как печатная машинка 

  • MANY MANY THANKS TO ALEX VOLKOV!
    It worked Perfeclty EXACTLY as it has been described.

css.php