Архив рубрики: Linux

google-earth и fedora, не запускается (selinux нам не помешает)

После установки под федорой google-earth он не запускается при некоторых настройках SELinux. Надо надобавлять в контекст библиотеки. Последний раз сделано для google-earth-5.1 и fedora 11. Возможно, в более новой версии программы надо дополнить список библиотек, посмотрите какие он пишет в косоль и добавьте для них аналогичную команду.

chcon -t textrel_shlib_t '/opt/google-earth/librender.so'
chcon -t textrel_shlib_t '/opt/google-earth/libauth.so'
chcon -t textrel_shlib_t '/opt/google-earth/libminizip.so'
chcon -t textrel_shlib_t '/opt/google-earth/libevll.so'
chcon -t textrel_shlib_t '/opt/google-earth/libmeasure.so'
chcon -t textrel_shlib_t '/opt/google-earth/liblayer.so'
chcon -t textrel_shlib_t '/opt/google-earth/libflightsim.so'
chcon -t textrel_shlib_t '/opt/google-earth/libnavigate.so'
chcon -t textrel_shlib_t '/opt/google-earth/libgooglesearch.so'
chcon -t textrel_shlib_t '/opt/google-earth/libinput_plugin.so'
chcon -t textrel_shlib_t '/opt/google-earth/libgps.so'
chcon -t textrel_shlib_t '/opt/google-earth/libbasicingest.so'
chcon -t textrel_shlib_t '/opt/google-earth/libcollada.so'
chcon -t textrel_shlib_t '/opt/google-earth/libmoduleframework.so'
chcon -t textrel_shlib_t '/opt/google-earth/libgoogleearth_lib.so'

Автор: Дмитрий

Настройка антиспама в Pidgin

В последнее время мне часто стал сыпаться спам в Pidgin. Решение нашлось быстро в виде антиспама Bot Sentry.
Установка и настройка предельно просты. Во-первых, устанавливаем pidgin-dev и intltool:

sudo aptitude install pidgin-dev intltool

Далее скачиваем с сайта разработчиков тарболл и распаковываем его:

wget http://downloads.sourceforge.net/project/pidgin-bs/bot-sentry/1.3.0/bot-sentry-1.3.0.tar.bz2?use_mirror=citylan
tar -xjvf bot-sentry-1.3.0.tar.bz2

Далее, переходим в директорию

cd bot-sentry-1.3.0/

и запускаем конфигурирование, компиляцию и инстралляцию

configure
make
sudo make install

Все готово, осталось только включить модуль в Pidgin:
Средства-Модули-Bot Sentry, затем придумать вопрос и ответ для антиспама:

Автор: AlexWinner
Дата публикации: 2010-06-04T18:01:00.000-07:00

RoR: связываем Ruby on Rails и Apache2

Про то, как установить Ruby On Rails, я писал в этой статье. Теперь же постараюсь описать, как запускать ROR-приложения под Apache2.
Итак, приступим.

Для начала надо установить сам Apache и библиотеки для поддержки fast-cgi для Apache и для Ruby:

apt-get install apache2 libapache2-mod-fcgid libfcgi-ruby1.8

После этого нужно установить мод passenger, который, собственно, служит для связки Apache и ROR.
Ставить его можно двумя способами:
1) Через RubyGems:

sudo gem install passenger
sudo passenger-install-apache2-module

Далее необходимо следовать инструкциям, выданным скриптом. В большинстве случаев дефолтные значения будут работоспособны. В конфиги апача придется добавить что-то вроде:

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6
PassengerRuby /usr/bin/ruby1.8

2) Другой способ — установка из репозитория Debian.
Мода passenger нет в репозитории Lenny, он есть в бэкпортах, в тестируемом и нестабильном выпусках. Значит, для начала надо подключить что-то из них. Для подключения бэкпортов надо добавить следующую линию к файлу /etc/apt/sources.list::

deb http://www.backports.org/debian lenny-backports main contrib non-free

После чего надо обновить apt:

sudo aptitude update

,
и установить libapache2-mod-passenger:

sudo aptitude install libapache2-mod-passenger

.

Далее, необходимо настроить виртуальный хост для нашего приложения.

Создаем файл /etc/apache2/sites-available/rubytest

Вместо rubytest можно написать все, что угодно:)
В этом файле содержимое должно быть таким:


ServerName www.myrailssite.co.uk
DocumentRoot /var/www/railssite/current/public
RailsEnv production


Options ExecCGI FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all

Где в DocumentRoot мы прописываем путь к директории public нашего приложения, ServerName — имя хоста, на котором вертится приложение.
После чего надо сделать символьную ссылку на этот файл в директории /etc/apache2/sites-enabled/ и обновить конфигурацию апача:

sudo ln -s /etc/apache2/sites-available/rubytest /etc/apache2/sites-enabled
sudo /etc/init.d/apache2 reload

Теперь, если открыть страницу www.myrailssite.co.uk в браузере, то мы увидим приветственную страницу Рельс:

Автор: AlexWinner
Дата публикации: 2010-06-02T04:57:00.000-07:00

Установка Ruby On Rails на Linux Debian (Ubuntu)

Расскажу о том, как ставить  фреймворк Ruby On Rails на Linux Debian (В случае с Ubuntu действия аналогичны).
Установка Ruby
а) Из репозитория:

sudo apt-get install ruby-full build-essential

б) Из исходников
Во-первых, надо установить пакеты, которые потребуются при компиляции:

sudo apt-get install build-essential libssl-dev libreadline5-dev zlib1g-dev

Затем скачиваем исходники в тарболе:

wget ftp://ftp.ruby-lang.org/pub/ruby/stable-snapshot.tar.gz

Распаковываем тарбол:

tar xzf stable-snapshot.tar.gz

Компилируем и устанавливаем:

$ cd ruby/
./configure
make
sudo make install

Проверяем работоспособность Ruby:

ruby -v

Должно появиться сообщение, подобное этому:

ruby 1.8.7p5000 (2009-02-22) [i686-linux]

Проверяем работоспособность библиотек:

ruby -ropenssl -rzlib -rreadline -e «puts :Hello»

В результате на экране должно появится следующее:

Hello

Установка RubyGems 
Установка через репозиторий:
Для этого необходимо выполнить следующую команду:

sudo apt-get install rubygems

Разработчки Rails не рекомендуют так делать. По их мнению, лучше устанавливать из исходников.
Установка RubyGems из исходников:
Для этого надо выполнить следующие действия:

$ cd ~
wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.2.tgz
tar xzvf rubygems-1.3.2.tgz
cd rubygems-1.3.2
sudo ruby setup.rb
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

Установка Rails
Установка с помощью RubyGems:
Это самый простой способ установить Rails. Для этого надо выполнить команду:

sudo gem install rails

В Ubuntu Karmic RubyGems устанавливает Rails не корректно, в этом случае можно воспользоваться установкой из репозитория через apt-get или aptitude
Установка из репозитория:

sudo apt-get install rails

Автор: AlexWinner
Дата публикации: 2010-06-01T14:09:00.000-07:00

Управление пакетами в (open)SUSE с помощью zypper

Данная статья не претендует на попытку написать документацию на zypper. Скорее это попытка познакомить читателя со средством пакетного менеджмента, используемым в дистрибутивах компании Novell. Данный пакетный менеджер является незаслуженно игнорируемым многими. Естественно, что охватить все его функции в рамках такой короткой статьи не представляется возможным, хотя бы потому, что для этого есть исчерпывающая документация ;), с которой трудно конкурировать. Ниже приведено вольное изложение об его основных и часто используемых возможностях. Более полный вариант документации и все возможные опции можно посмотреть в man zypper и здесь, здесь и здесь.

Для управления пакетами в разных версиях SUSE как самое высокоуровневое средство используется Yast, который на самом деле использует zypper (а если еще точнее, то его библиотеку libzypp). Причем, обратите внимание на то, что вторая буква в его названии это «Y», а то почему-то его название многие порываются написать, как zipper. Zypper — средство для управления пакетами в текстовом режиме. С SUSE версии 11 (включая энтерпрайзовые версии) zypper существенно прибавил в скорости. По данному теперь он легко уделывает yum (в отличие от yum zypper написан на С) и не уступает (по субъективному ощущению) apt. Синтаксис его конфигурационных файлов достаточно прост, например, чтобы управлять разными репозиториями не нужно ломать голову в отношении их приоритетов (это камень в огород apt). Также zypper достаточно «всеяден» в плане подключения разных репозиториев — он понимает:
Читать

Обновление openSUSE 11.2 до 11.3 M7

Прогнав несколько раз обновление openSUSE с 11.2 до очередной «вехи» (очередного Milestone) на виртуалке, я таки решился обновить систему на своем ноутбуке. Напомню, на всякий случай, релиз openSUSE 11.3 выйдет 15 июля, но уже сейчас те, кто хочет — могут обновиться до очередного тестового выпуска. То, что выпуск тестовый означает, что его работа не гарантируется в каждый из моментов времени. Другими словами поломаться может все что угодно в любой момент времени ;).

Несколько тестовых прогонов на виртуалке позволили выявить несколько подводных камней, на которые можно наткнуться при выполнении обновления «живой» системы. О них я расскажу по ходу дела.

На моей openSUSE подключено много дополнительных репозиториев: это конечно же разные репозитории, позволяющие воспроизводить multimedia-файлы. К ним относятся Packman, libdvdcss и Videolan. Поскольку этих репозиториев под openSUSE 11.3 нет — я их оставил нетронутыми. Интересно было посмотреть — будут ли проблемы с зависимостями при обновлении.

Зато я отключил следующие репозитории:

  • Mozilla — в котором всегда есть сборка последнего Firefox;
  • OpenOffice — назначение аналогично;
  • Virtualization — последние версии kvm и qemu.

Причина банальна — все последние версии перечисленных программ включаются в основной репозиторий openSUSE 11.3. Естественно, что позже, после релиза стоит подключить эти репозитории обратно.

Затем я просто перебил номер версии openSUSE с 11.2 на 11.3 в файлах репозиториев OSS (opensource ПО), Non-OSS и Updates. Затем выполнил команду zypper ref , чтобы обновить информацию о репозиториях.

Теперь об обещанном подводном камне. В процессе обновления, при изменении файлов в /etc/sysconfig , zypper вызывает SuSEconfig, для генерации разных системных файлов в /etc . В то же время в процессе обновления в системе меняются некоторые утилиты, которые вызываются из SuSEconfig'a, что иногда вызывает его временную неработоспособность. Эта «неработоспособность» приводит к тому, что процесс обновлений прерывается и не факт, что его затем можно будет продолжить корректно. Возможно, что к релизу этот баг подправят. Но пока работает именно так, как я описал. К счастью, SuSEconfig можно отключить. Делается это редактированием файла /etc/sysconfig/suseconfig. Достаточно в этом файле изменить значение переменной ENABLE_SUSECONFIG=»yes» на ENABLE_SUSECONFIG=»no» . После этого SuSEconfig работать больше не будет. На обновленной системе его затем будет необходимо включить обратно.

Затем, рекомендуется изменить в файле /etc/zypp/zypp.conf (если не сделали этого раньше) параметр commit.download.mode в значение DownloadInAdvance. Это заставит zypper выполнить обновление после предварительного выкачивания всех пакетов.

Последний шаг перед обновлением — это убедиться, что у вас на жестком диске достаточно места, для всех выкачиваемых пакетов. У меня объем скачивания составил 1,4Gb. Пакеты скачиваются в каталог /var/cache/zypp.

Ну а теперь просто выполняем обновление командой zypper dup . Перед выполнением обновления он предложит вам разрешить конфликты между пакетами. У меня это почему-то были пакеты, связанные с NetworkManager. Я предпочел удалить все эти пакеты. Их потом можно поставить из обновленной системы. Затем, zypper выкачивает необходимые пакеты и начинает выполнять обновление. У меня весь процесс обновления (без учета времени выкачивания пакетов) занял около 40 минут (Core 2 Duo 2,1 GHz). Достаточно быстро! По окончании процесса можно убедиться в том, что мы действительно обновили систему:

host13:/etc/X11 # cat /etc/SuSE-release
openSUSE 11.3 Milestone 7 (x86_64)
VERSION = 11.3

После завершения обновления включаем обратно SuSEconfig и запускаем его из командной строки: SuSEconfig (обратите внимание, что буква 'u' маленькая). После того, как он отработал, я решил перестраховаться и запустил еще раз mkinitrd — это скрипт, выполняющий пересборку initrd (образа, критичного для загрузки системы). Также желательно запустить zypper ve для дополнительной проверки системы на целостность зависимостей.

Если вывод этих команд не содержал информации об ошибках, вводим reboot и перезагружаем систему. После удачной (я надеюсь!) загрузки мы попадаем в обновленную систему. В последнем Milestone разработчики openSUSE потихоньку начинают внедрять новое оформление. Новые обои по умолчанию видно на этом скриншоте:

Примерно такая же картинка в графическом меню grub и в GDM.

Система вроде бы пока работает достаточно стабильно. Замеченые пока ошибки:
1. Иногда при загрузке системы разрешение внезапно устанавливается в 640х480
. У меня подозрение, что это пока KMS подглючивает.
2. Немного косячит неправильно настроенный PolicyKit — система постоянно спрашивает root'овый пароль для перезагрузки, монтирования флешек и перехода в спящий режим. Насколько я разобрался — причины кроются в том, что из системы убрана поддержка HAL, а новые политики пока не написаны.
3. При выходе из спящего режима включается на полную вентилятор процессора.
Все эти ошибки терпимые и до релиза вполне можно жить.

После обновления haldaemon остается работать в системе и его необходимо принудительно отключить:
host13:/etc/X11 # chkconfig haldaemon off

Х-сервер теперь собран с поддержкой udev вместо HAL:
host13:~ # ldd $(which X)
    linux-vdso.so.1 =>  (0x00007fff401ff000)
    libudev.so.0 => /lib64/libudev.so.0 (0x00000036e8600000)
    libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0 (0x00000036d2800000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00000036d4600000)
    libpciaccess.so.0 => /usr/lib64/libpciaccess.so.0 (0x00000036d3000000)
    libXfont.so.1 => /usr/lib64/libXfont.so.1 (0x00000036d5200000)
    libXau.so.6 => /usr/lib64/libXau.so.6 (0x00000036d6200000)
    libpixman-1.so.0 => /usr/lib64/libpixman-1.so.0 (0x00000036dee00000)
    libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00000036da200000)
    libm.so.6 => /lib64/libm.so.6 (0x00000036d3e00000)
    librt.so.1 => /lib64/librt.so.1 (0x00000036d4e00000)
    libc.so.6 => /lib64/libc.so.6 (0x00000036d3a00000)
    libz.so.1 => /lib64/libz.so.1 (0x00000036d4a00000)
    /lib64/ld-linux-x86-64.so.2 (0x00000036d2400000)
    libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00000036d7600000)
    libfontenc.so.1 => /usr/lib64/libfontenc.so.1 (0x00000036d3400000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00000036d4200000)

Теперь для его настроек используется каталог /etc/X11/xorg.conf.d:

host13:~ # ls /etc/X11
.qtrc.lock  Xmodmap.remote  fs        proxymngr  rstart       xdm  xim.d  xorg.conf.d
Xmodmap     Xresources      lbxproxy  qtrc       x11perfcomp  xim  xinit  xs

host13:~# ls /etc/X11/xorg.conf.d/
10-evdev.conf  20-synaptics.conf  50-device.conf   50-screen.conf   90-keytable.conf
11-mouse.conf  20-wacom.conf      50-monitor.conf  50-vmmouse.conf

В данном каталоге лежат файлы, настраивающие отдельные аспекты настройки Х-сервера. Вот, например, файл для evdev:

host13:~ # cat /etc/X11/xorg.conf.d/10-evdev.conf
#
# Catch-all evdev loader for udev-based systems
# We don't simply match on any device since that also adds accelerometers
# and other devices that we don't really want to use. The list below
# matches everything but joysticks.

Section «InputClass»
        Identifier «evdev pointer catchall»
        MatchIsPointer «on»
        MatchDevicePath «/dev/input/event*»
        Driver «evdev»
EndSection

Section «InputClass»
        Identifier «evdev keyboard catchall»
        MatchIsKeyboard «on»
        MatchDevicePath «/dev/input/event*»
        Driver «evdev»
EndSection

Section «InputClass»
        Identifier «evdev touchpad catchall»
        MatchIsTouchpad «on»
        MatchDevicePath «/dev/input/event*»
        Driver «evdev»
EndSection

Section «InputClass»
        Identifier «evdev tablet catchall»
        MatchIsTablet «on»
        MatchDevicePath «/dev/input/event*»
        Driver «evdev»
EndSection

Section «InputClass»
        Identifier «evdev touchscreen catchall»
        MatchIsTouchscreen «on»
        MatchDevicePath «/dev/input/event*»
        Driver «evdev»
EndSection

В общем и целом все пока нравится, вроде все работает.

Автор: stranger