воскресенье, 8 марта 2015 г.

Что делать если в KDE не монтируется USВ диск?

Какое-то время назад в KDE 4.12 перестал монтироваться USB диск. Он определялся, но при клике на "Open with File Manager", KDE ругался что "Could not mount device...".

Ясное дело, что под root'ом проблем не было, все монтировалось и работало, но каждый раз вызывать kdesu dolphin при вставки флешки было неудобно и я решил разобраться в чем дело.

Все как всегда оказалось тривиально, KDE был не настроен для автоматического монтирования сменных накопителей. То есть для того, чтобы починить и заставить KDE монтировать USD диски нужно было просто зайти в System Settings -> Removable Devices и выбрать чекбокс Enable automatic mounting of removable media.

После нужно перезапустить сеанс и наслаждаться монтируемыми USB дисками и прочими сменными накопителями информации.

среда, 26 ноября 2014 г.

Как открыть новое окно в byobu с текущей директорией вместо домашней?

Я использую byobu с бэкендом tmux для упрощения работы с терминалом. byobu при помощи tmux позволяет делать много всего замечательного, но после того как tmux в openSUSE 13.2 обновился до версии 1.9 новое окно открывается в домашней директории вместо текущей (при нажатии F2) и это сильно замедляло рабочий процесс.

Но после небольшого поиска по интернету, я нашел в чем причина. Оказывается с версии 1.9 tmux открывает новое окно в домашней директории вместо текущей и убирает из списка доступных опций сервера default-path. Т.е. для того, чтоб вернуться к старому поведению tmux, надо будет явно задавать путь для нового окна, открываемого tmux.

Для этого нужно перебиндить нажатие F2-клавиши. И самый простой способ это сделать - это добавить строчку:

bind-key -n F2 new-window -c "#{pane_current_path}" \; rename-window "-"

в ~/.byobu/keybindings.tmux, ну или если byobu пользуется больше одного пользователя в системе то поправить биндинг в /usr/share/byobu/keybindings/f-keys.tmux.

После правки конфига и его сохранения, просто перезагрузите профиль byobu при помощи F5, изменения вступят в силу и новое окно будет опять открываться в текущей директории вместо домашней.

вторник, 25 ноября 2014 г.

Как обновить openSUSE с 13.1 на 13.2?

Обновление openSUSE - задача довольно тривиальная, но так как она не так проста, как do-release-upgrade в случае Ubuntu, я хотел бы оставить краткий список пунктов, которые нужно сделать для того, чтоб обновить openSUSE на примере перехода с версии 13.1 на недавно вышедшую версию 13.2.

  • Во-первых, нужно поменять версию для всех используемых репозиториев в системе, выполнив:
    # for file in /etc/zypp/repos.d/*.repo; do sed -i 's/13\.1/13\.2/g' "$file"; done
  • Теперь нужно обновить кеш zypper'а:
    # zypper ref
    и повыключать все репозитории, которые еще не поддерживаются новой версией openSUSE.
  • Далее следует обновить сам zypper:
    # zypper up zypper
    Так как при переходе с 13.1 на 13.2 возникают конфликты при обновлении zypper, лучше обновлять его в ручном, а не в автоматическом режиме.
  • И наконец система готова к обновлению. Запускайте:
    # zypper dup
    решайте возникшие конфликты, проверяйте список пакетов, которые удалятся/обновлятся в вашей системе и вуаля, через некоторое время ваша система будет обновлена.

понедельник, 4 августа 2014 г.

Дружим Chromium и Goolge Talk Plugin на openSUSE 13.1

Я давно пользуюсь Chromium, установленным с network:chromium репозитария и до недавнего времени все с ним было отлично. Однако проблемы начались, когда разработчики Chromium решили перейти на новый интерфейс для плагинов, сначала случились проблемы с Adobe Flash Player'ом, сейчас в Chromium перестал обнаруживаться googletalk-plugin, установленный из Google'овского репозитория.

Как оказалось вся радость в том, что пакет chromium, собранный через openSUSE Build Service, устанавливается в /usr/lib64/chromium, тогда как Google ожидает, что он будет установлен в /usr/lib64/chromium-browser и поэтому googletalk-plugin создает неправильные ссылки для такого вроде бы родного браузера.

Правится все просто, созданием правильной ссылки на плагин:

$ sudo ln -s /opt/google/talkplugin/ /usr/lib64/chromium/pepper

и перезапуском Chromium.

ps. Рецепт выше актуален для 64-битной системы, для 32-битной используйте /usr/lib/... вместо /usr/lib64/....

воскресенье, 25 мая 2014 г.

Устанавливаем Adobe Flash Plugin для Chromium 34 и выше

Так как Chromium с версии 34 переходит с использования интерфейса для плагинов NPAPI на интерфейс Aura, вполне возможно что после обновления на YouTube и прочих сайтах, требующих Adobe Flash Plugin, будет показываться сообщение про отсутсвующий Flash плагин, даже при наличии установленного flash-player. В таком случае надо просто установить chromium-pepper-flash с репозитория Packman (для openSUSE 12.3 и выше):

# zypper ar -f http://ftp.fau.de/packman/suse/13.1/ Packman
# zypper ref
# zypper in -y chromium-pepper-flash

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

Внимание: pepper-flash-plugin совместим только с новыми версиями Chromium, так что для работы Flash в Firefox или других браузерах, поддерживающих NPAPI интерфейс вам все так же будет необходим установленный flash-player.

пятница, 10 августа 2012 г.

Заставляем bluetooth работать в openSUSE 12.2

С интересной особенностью столкнулся, после перехода на новую версию openSUSE на своем стационарном компьютере - bluetooth-клавиатура отказывалась работать, blueman не запускался, a # service bluetooth start ругался no such service bluetooth. Не порядок подумал я и пошел изучать systemctl, как оказалось все починить было очень просто:

# systemctl enable bluetooth.service
...
# systemctl start bluetooth.service

После этих нехитрых телодвижений синезуб-клавиатура заработала, а blueman-applet начал загружаться автоматически после каждой перезагрузки. Вот такие вот дела.

пятница, 14 октября 2011 г.

Добавляем поддержку iconv в rsync на Mac OS X

После приобретения MacBook Air с установленной на нем Mac OS X Lion у меня появилось несколько проблем. И главной была проблема с кодировками. Дело в том, что в макос используется не стандартный UTF-8, а так называемый UTF-8-MAC (подробное описание проблемы на странице rsync) и это порождает сложности в простом использовании sshfs или rsync (а сервер то с openSUSE у меня никуда не делся :)), ведь без iconv их использование будет не полноценным.

Да вот беда, в стандартной версии rsync поставляемой со львом нет поддержки iconv:

rsync: --iconv=UTF-8,UTF-8-MAC: unknown option
rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-42/rsync/main.c(1333) [client=2.6.9]

Так что прийдется варить его :) И хоть оффициальной формулы для rsync не видать, расстраиваться не стоит, потому что на помощь приходит homebrew-alt репозиторий и формула оттуда:

$ brew install https://github.com/adamv/homebrew-alt/raw/master/duplicates/rsync.rb

После установки у нас появится rsync версии 3.0.9 с поддержкой опции iconv и все станет хорошо. Теперь при копировании на макос с линукса я просто добавляю --iconv=UTF-8-MAC,UTF-8 к опциям rsync'a.

зы. И чтоб два раза не вставть, для того чтобы использовать iconv в sshfs убедитесь что он установлен при помощи brew и просто добавьте --omodules=iconv,from_code=UTF-8,to_code=UTF-8-MAC в строку маунта или запуска sshfs.

зыы. Не знаю, что там предлогают MacPorts или Fink, но мой выбор сразу пал на homebrew.

вторник, 11 октября 2011 г.

Стартуем PostgreSQL 9.1

Если при старте PostgreSQL 9.1 (или любого другого) вы ловите что-то похожее:

# service postgresql start
Starting PostgreSQL2011-10-11 14:12:19 EEST   LOG:  could not bind IPv6 socket: Cannot assign requested address
2011-10-11 14:12:19 EEST   HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2011-10-11 14:12:19 EEST   WARNING:  could not create listen socket for "localhost"
2011-10-11 14:12:19 EEST   FATAL:  could not create any TCP/IP sockets
pg_ctl: could not start server
Examine the log output.

то решение проблемы - очень тривиально: просто поправить listen_addresses директиву в конфигурационном файле postgresql.conf (он может распологаться в /var/lib/pgsql/data или /Library/PostgreSQL/9.1/data) c:

# - Connection Settings -

#listen_addresses = 'localhost'  # what IP address(es) to listen on;
     # comma-separated list of addresses;
     # defaults to 'localhost', '*' = all
     # (change requires restart)

на:

# - Connection Settings -

listen_addresses = '*'   # what IP address(es) to listen on;
     # comma-separated list of addresses;
     # defaults to 'localhost', '*' = all
     # (change requires restart)

и перезапустить PostgreSQL.

вторник, 13 сентября 2011 г.

Заставляем guake работать в openSUSE 11.4

Если после установки guake c Packman'а вы ловите:

playpauseandstop@octave:~> DISPLAY=:0 guake
Traceback (most recent call last):
  File "/usr/lib64/guake/guake.py", line 27, in 
    import vte
ImportError: could not import gobject (could not find _PyGObject_API object)
playpauseandstop@octave:/srv/files/RPMs> DISPLAY=:0 guake
Traceback (most recent call last):
  File "/usr/lib64/guake/guake.py", line 29, in 
    import pynotify
  File "/usr/lib64/python2.7/site-packages/gtk-2.0/pynotify/__init__.py", line 21, in 
    from _pynotify import *
ImportError: could not import gobject (could not find _PyGObject_API object)
playpauseandstop@octave:~> DISPLAY=:0 guake-prefs
Traceback (most recent call last):
  File "/usr/lib64/guake/prefs.py", line 25, in 
    import gconf
ImportError: could not import gobject (could not find _PyGObject_API object)

Не спешите расстраиваться, решение есть, для начала подключаем репозитарий с Python-библиотеками и устанавливаем оттуда python-gobject2:

$ sudo -s
# zypper ar -f http://download.opensuse.org/repositories/devel:/languages:/python/openSUSE_11.4 Python
# zypper ref Python
# zypper in python-gobject2

А потом скачиваем с Factory обновленные пакеты python-gconf, python-notify и python-zte и обновляем их (для python-notify понадобятся более свежие версии libnotify-tools и libnotify4, а для python-vte - более свежие версии libvte9 и gnome-pty-helper):

$ cd /path/to/RPMs
$ wget http://download.opensuse.org/factory/repo/oss/suse/x86_64/python-gconf-2.28.1-11.5.x86_64.rpm
$ wget http://download.opensuse.org/factory/repo/oss/suse/x86_64/python-notify-0.1.1-19.5.x86_64.rpm
$ wget http://download.opensuse.org/factory/repo/oss/suse/x86_64/libnotify4-0.7.4-1.1.x86_64.rpm
$ wget http://download.opensuse.org/factory/repo/oss/suse/x86_64/libnotify-tools-0.7.4-1.1.x86_64.rpm
$ wget http://download.opensuse.org/factory/repo/oss/suse/x86_64/python-vte-0.28.1-2.3.x86_64.rpm
$ wget http://download.opensuse.org/factory/repo/oss/suse/x86_64/libvte9-0.28.1-2.3.x86_64.rpm
$ wget http://download.opensuse.org/factory/repo/oss/suse/x86_64/gnome-pty-helper-0.28.1-2.3.x86_64.rpm
$ sudo -s
# rpm -Uvh python-gconf-2.28.1-11.5.x86_64.rpm
# rpm -Uvh libnotify4-0.7.4-1.1.x86_64.rpm libnotify-tools-0.7.4-1.1.x86_64.rpm python-notify-0.1.1-19.5.x86_64.rpm
# rpm -Uvh gnome-pty-helper-0.28.1-2.3.x86_64.rpm libvte9-0.28.1-2.3.x86_64.rpm python-vte-0.28.1-2.3.x86_64.rpm

Все, готово, теперь и gconf, и pynotify, и vte библиотеки успешно импортируются питоном, а guake спокойно открывается и работает!

зы. Если честно, в итоге решение не особо красивым получилось, но удалось заставить guake (а также другие Python-приложения, использующие обозначенные библиотеки, работать).

пятница, 15 апреля 2011 г.

Joli OS 1.2 и HP LaserJet M1005MFP

На самом деле, рассказ не стоит и выеденного яйца ибо все известно и так, что для работы HP LaserJet M1005MFP в Linux надо установить foo2xqx, входящий в пакет foo2zjs. Но помня, что во времена Jolicloud 1.1 я так и не подружил систему с сетевым принтером, решил добавить эту заметку.

Итак, первым делом:

$ sudo aptitude update
$ sudo aptitude install foo2zjs

Затем, для облегчения управления принтерами было бы неплохо установить в Joli App Center Printing Add-on, или:

$ sudo aptitude install jolicloud-addons-printing

Дальше, все элементарно, заходим в Printing Add-on, нажимаем Add -> Printer, выбираем тип принтера локальный или сетевой (для сетевых принтеров не забудьте расрешить доступ к нему на сервере), находим принтер, верифицируем, нажимаем Forward, наименовуем принтер, как нравится и нажимая еще раз Forward получаем предложение о печати тестовой страницы, игнорируем это предложение.

Теперь мы видим добавленный принтер в главной области Printing Add-on, вызываем контекстное меню и нажимаем Properties, находим Make and Model и нажимаем Change, ждем пока оно еще раз "найдет" доступные драйвера, и в появившемся окне выбираем производитель HP, кнопка Forward, драйвер LaserJet M1005 MFP (HP LaserJet M1005 MFP Foomatic/foo2xqx), нажимаем последний раз Forward и получаем рабочий сетевой принтер, о чем убеждаемся напечатав тестовую страницу или что-либо еще.

Если же после, описанных мною манипуляций вы все еще получаете:

**** Unable to open the initial device, quitting.

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