Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

Обновление 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

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

the avatar of Matthias Hopf

RAnsrID - Redundant Array of Non-Striped Really Independent Disks

In my spare time I've been working on a RAID-lookalike system for storing large amounts of data with multiple redundancies - and with significantly lower power consumption and disk spinning time than standard RAID if you only access single large files in a typical session.

The whole thing is implemented as a network block device (nbd), and will be presented (in an early, but at least already partially working state) on LinuxTag 2010 in Berlin.

Note that this is not a direct competitor to a standard RAID solution - in fact, I propose using a RAID 1 for the journal it needs (e.g. use the system disk - you're already using a RAID there, right?). For a comparison table check the project page.

Source will be available soon, I've not decided which git hoster to use yet. I don't think it's reasonable to put this on freedesktop, because is relation to freedesktop to close to nothing. I might change my mind, though .
a silhouette of a person's head and shoulders, used as a default avatar

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


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

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

  • «родной» формат репозиториев yast;
  • репозитории yum (rpm repo-md);
  • iso-образы репозиториев (да-да, не нужно их распаковывать!) ;
  • локальный каталог с rpm-пакетами;
  • то, что писать уже практически не обязательно - разные сетевые источники репозиториев — http, ftp, nfs.


Oб остальных интересностях я расскажу по ходу дела.

С версии openSUSE 11.2 в zypper наконец-то была добавлена опция, которая давно в него просилась, а именно, опции предварительного выкачивания пакетов при обновлении. Ранее zypper работал так. Например, нужно обновить с десяток пакетов. Zypper выкачивал их все и устанавливал по одному. В принципе, ничего страшного. Если канал в сеть хороший и надежный. А это в наших широтах не всегда встречается. В основном конфигурационном файле /etc/zypp/zypp.conf данное поведение описывается опцией commit.download.mode (опция закоментирована по умолчанию), которая имеет следующие варианты:
  • DownloadOnly — опция, которая легко заменяется ключом --dry-run, т. е. выкачивание всех пакетов необходимых для обновления без их установки.
  • DownloadInAdvance — сначала выкачать все пакеты, требующие обновления, затем начать процесс их установки.
  • DownloadInHeaps — опция аналогичная представленной выше, но в данном случае закачка и установка пакетов выполняется «порциями», не нарушающими целостность системы. Примерно также ведет себя пакетный менеджер в Mandriva.
  • DownloadAsNeeded — традиционное поведение. Закачка и установка осуществляется по одному пакету.
Следующей интересной возможностью zypper является сокращенный вариант его опций, т. е. для установки пакета можно написать zypper install foopackage, а можно zypper in foopackage. Далее я буду приводить именно сокращенный вариант опций, а полный вариант писать в скобках.

Поиск пакетов

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

zypper se foopackage — выполнить поиск (se - search) пакета foopackage.

Если вы хотите найти какую-то программу, но не знаете в каком пакете ее искать, можно сделать так:

booka:/etc/zypp # zypper wp vi
Loading repository data...
Reading installed packages...
S | Name | Type | Version | Arch | Repository
--+--------------+---------+----------+------+------------------
| gvim | package | 7.2-16.7 | i586 | openSUSE-11.2-Oss
i | vim | package | 7.2-16.7 | i586 | openSUSE-11.2-Oss
| vim-enhanced | package | 7.2-16.7 | i586 | openSUSE-11.2-Oss

Опция wp (what-provides) позволяет искать пакет по любому возможному параметру: имя исполняемого файла, путь до исполняемого файла, любой набор символов из описания пакета. В данном случае я попросил найти пакет, содержащий редактор vi.

Еще примеры:

Попробуем поискать в каком пакете у нас находится библиотека libpng:
host13:~ # zypper wp libpng
Loading repository data...
Reading installed packages...
S | Name | Type | Version | Arch | Repository
--+------------+---------+------------+--------+------------------
i | libpng12-0 | package | 1.2.39-2.2 | x86_64 | openSUSE-11.2-Oss
v | libpng12-0 | package | 1.2.39-2.2 | i586 | openSUSE-11.2-Oss

Интересно, а в каком пакете находится файл /bin/bash?

Host13:~ # zypper wp /bin/bash
Loading repository data...
Reading installed packages...
S | Name | Type | Version | Arch | Repository
--+------+---------+------------+--------+----------------------------
i | bash | package | 4.0-18.4.1 | x86_64 | Updates for openSUSE 11.2-0
v | bash | package | 4.0-18.4.1 | i586 | Updates for openSUSE 11.2-0
v | bash | package | 4.0-18.3 | x86_64 | openSUSE-11.2-Oss
v | bash | package | 4.0-18.3 | i586 | openSUSE-11.2-Oss

Первый столбик показывает статус пакета, где i означает - установлен.

Просмотреть информацию о пакете можно командой zypper info <имя пакета>

Установка и удаление пакетов

Установка пакетов из подключенных репозиториев выполняется командой:

zypper in foopackage

Данная команда (in - install) установит пакет foopackage со всеми его зависимостями.

Для удаления пакетов используется опция rm/remove:

zypper rm foopackage

Данная команда удалит пакет foopackage из вашей системы.

Для проверки целостности системы на предмет удовлетворения зависимостей существует команда verify:

zypper ve

Если чего-то не будет хватать - zypper предложит доустановить нехватающие пакеты (или даже удалить ненужные).

Также есть еще два ключа, которые не являются обязательными, но могут здорово помочь, если вы вызываете zypper из скриптов. Первый ключ «-y» заставляет пакетный менеджер отвечать на все вопрос «да»/«yes». Второй ключ «-l» (маленькая L) - имеет похожее значение, она заставляет zypper соглашаться с лицензионными соглашениями отдельных пакетов (например, таких как Adobe Flash).

Обновление

Выполнять обновление системы zypper позволяет двумя способами — на основе патчей и на основе пакетов. Первый способ рекомендуется для серверов. В данном случае производится только наложение патчей, исправляющих ошибки безопасности на установленное ПО, причем этот способ обновлений должен поддерживаться теми, кто ведет репозиторий, из которого вы обновляетесь. Стандартные репозитории openSUSE поддерживают данный способ. Второй способ выполняет установку новых пакетов в систему. Понятно, что в данном случае все определяется способом ведения репозитория майнтейнерами пакетов. Стандартные репозитории openSUSE «замораживают» номера версий ПО, так что в принципе эти два способа равноценны (но только для них). Это все была теория. Теперь немного практики.
Обновить метаданные репозитория можно командой zypper ref и это необходимо делать всякий раз перед выполнением обновления (либо включить autorefresh для всех репозиториев - см.ниже).

Просмотреть список доступных патчей (list-patches) можно командой:

zypper lp

Просмотреть информацию о конкретном патче можно командой (про опцию -t ниже):

zypper info -t patch foopatch

Установить патчи можно командой zypper patch .

Обновление системы на основе пакетов выполняется командой:

zypper up [имя пакета]

Данная команда (up/update) выполняет обновление либо указанного пакета, либо всей системы.

Вторая команда предназначается для обновления системы между релизами (dist-upgrade):

zypper dup

Последняя команда имеет несколько интересных эффектов. Как известно все пакеты rpm имеют поле Vendor, в котором указан сборщик пакета. Пакеты из стандартных репозиториев имеют в данном поле openSUSE (или просто SUSE для энтерпрайзовых версий). Пакеты собранные на openSUSE Build Service имеют в данном поле слово obs с указанием вида репозитория. Так вот команда zypper up выполняет обновление таким образом, чтобы поле Vendor не менялось при обновлении. zypper dup, наоборот, может предпочесть изменить вендора пакета при обновлении.

Следующая интересная возможность касается тех, кто как я любит поэкспериментировать с системой. Допустим, вы хотите поставить последнюю версию KDE, подключаете репозиторий (об этом ниже) KDE4:Factory (данный репозиторий для разработчиков и тестеров), выполняете zypper dup (при этом Vendor меняется с openSUSE на что-то вроде obs://build.opensuse.org/KDE/KDE4:Factory) и получаете ее. Но потом, вы обнаруживаете, что в ней еще куча ошибок и вы хотели бы вернуться обратно. Что же делать? Неужели ничего нельзя поправить?!!! А ничего страшного! Убираете данный репозиторий (удаляете файл с его описанием или просто выключаете его) и опять выполняете zypper dup. При этом zypper вам предложит выполнить downgrade всех обновленных ранее пакетов. Т. е. zypper dup выполняет обновление системы таким образом, чтобы она всегда соответствовала подключенным репозиториям. Справедливости ради, стоит отметить, что downgrade не всегда проходит гладко. Иногда, при неблагоприятном положении звезд и планет, в системе остаются библиотеки от новых репозиториев, которые могут помешать работе программ. Так что возможно, придется затем позаниматься таким «увлекательным» занятием, как troubleshooting.

Управление репозиториями

Как отмечалось выше zypper всеяден в плане возможных репозиториев. Посмотреть что же у вас подключено в данный момент можно следующей командой:

host13:~ # zypper lr

В первой колонке приведен порядковый номер репозитория, во второй и третьей его название и описание. Четвертая и пятая колонки показывают включен ли данный репозиторий и включено ли его автообновление (autorefresh). Если последняя возможность включена, то при каждом своем запуске zypper будет проверять нужно ли обновление метаданных репозитория и, если нужно, выполнять его. В противном случае, вам нужно будет делать это собственноручно командой zypper ref (refresh).

Добавить репозиторий можно командой: zypper ar URI alias , где - URI идентификатор репозитория.  alias - это любое понятное вам имя репозитория, позволяющее идентифицировать его и отличить от других. ar — сокращенный вариант addrepo. Пример команды:

host13:~ # zypper ar nfs://192.168.0.254/srv/ftp/sles11 sles11
Adding repository 'sles11' [done]
Repository 'sles11' successfully added
Enabled: Yes
Autorefresh: No
URI: nfs://192.168.0.254/srv/ftp/sles11

Удалить репозиторий можно командой zypper rr . Например:

host13: ~# zypper rr 13
Removing repository 'sles11' [done]
Repository 'sles11' has been removed.

Здесь я удалил репозиторий, указав его ID (то есть номер). Его можно увидеть в выводе команды zypper lr . Аналогичного эффекта я бы добился, указав zypper rr sles11 . То есть в данном случае указывать нужно или ID репозитория, или его псевдоним.

Модификация параметров репозитория выполняется командой: zypper mr [options] . Список опций можно получить следующим образом:

host13:~ # zypper mr
Alias or an aggregate option is required.
modifyrepo (mr) ...
modifyrepo (mr) <--all|--remote|--local|--medium-type>

Modify properties of repositories specified by alias, number, or URI, or by the
'--all, --remote, --local, --medium-type' aggregate options.

Command options:
-d, --disable Disable the repository (but don't remove it).
-e, --enable Enable a disabled repository.
-r, --refresh Enable auto-refresh of the repository.
-R, --no-refresh Disable auto-refresh of the repository.
-n, --name Set a descriptive name for the repository.
-p, --priority Set priority of the repository.
-k, --keep-packages Enable RPM files caching.
-K, --no-keep-packages Disable RPM files caching.

-a, --all Apply changes to all repositories.
-l, --local Apply changes to all local repositories.
-t, --remote Apply changes to all remote repositories.
-m, --medium-type Apply changes to repositories of specified type.

Например, следующая команда включит параметр autorefresh для все репозиториев:

host13:~ # zypper mr -ra

Опция -r просит включить автообновление для репозиториев (а -R выключит его), а опция -a говорит применить это ко всем репозиториям.

Репозитории могут иметь приоритеты, которые могут дополнительно указывать zypper ваши предпочтения (меньшее значение - больший приоритет). Работа с приоритетами аналогична тому, что происходит в yum. Только здесь не нужно ставить никаких дополнительных плагинов. Чтобы задать приоритет репозиторию можно воспользоваться командой zypper mr, но на мой взгляд, гораздо проще открыть файл .repo репозитория и дописать в нем, например, такую строчку - priority=100. Стандартные репозитории openSUSE имеют приоритет 90, а репозиторий Updates приоритет 20. Имейте это в виду, когда будете задавать собственные приоритеты. После изменения приоритетов репозиториев обязательно необходимо запустить, сначала  zypper ref (если не включен autorefresh для репозиториев), а затем zypper dup, для того, чтобы zypper установил пакеты в соответствии с высказанными вами предпочтениями.

Но, по-моему, гораздо удобнее для управления репозиториями использовать соответствующий модуль yast:
host13:~ # yast repositories

Любители графического интерфейса Yast могут воспользоваться либо его графическим меню, либо набрав в консоли:

host13:~ # yast2 repositories

Ну и самый простой способ подключения репозиториев - это скачать файл с его описанием отсюда. В каждом из репозиториев есть текстовый .repo файл, например, для репозитория со свежими версиями Apache он лежит здесь. Затем нужно поместить его в каталог /etc/zypp/repos.d/. Ну и подредактировать на предмет приоритетов, если это нужно.

Типы пакетов

Ну и самая интересная возможность zypper в том, что он позволяет использовать разные типы «пакетов» при установке. В данном случае под «пакетами» понимаются:
  • собственно, пакеты (и если ничего не указывать специально, то имеются в виду именно они);
  • патчи (patch) (репозитории могут содержать просто патчи, а не пакеты с обновлениями);
  • шаблоны (pattern) - группы пакетов, устанавливающие ту или иную функциональность;
  • продукты (product) - совсем редко встречающийся зверь - это группы пакетов для работы того или иного продукта;
  • пакет с исходниками (srcpackage) - это обычный src.rpm.

Тип пакета указывается опцией -t . Например, получить список доступных шаблонов можно командой zypper patterns. И поставить тот, что нужен, командой:

host13:~ # zypper in -t pattern x11

Здесь pattern это тип устанавливаемого пакета, то есть мы указываем, что имеем в виду именно шаблон. x11 - имя устанавливаемого шаблона. Самое плохое при использовании шаблонов это то, что удалять пакеты шаблонами zypper пока не умеет.

Это, пожалуй, все, что я хотел рассказать про zypper на данном этапе. Я не ставил целью написать полный обзор данного пакетного менеджера, но надеюсь, что после этого хотя бы кто-то прочтет его полную документацию ;).


a silhouette of a person's head and shoulders, used as a default avatar

openSUSE Schools! in Nicaragua!

Hi!

A few years ago the LUG opensuse-nicaragua has the project named “Escuelita opeSUSE” this project was to provide basic courses for the people opensuse.

And the last week, we finally  made it!!!

The course was in UNICIT(Iberoamerican University of Technologies and Cience), were 2 intensive days of linux linux and linux jejeje, the pensum of course was:

1.      Installation of openSUSE

2.       Basic Configurations

3.       KDE

4.       YaST

5.       Shell

6.       Software and repositories

And Thanks to the marketing group for the materials!! Second fase of Escuelita openSUSE is comming soon!!!

a silhouette of a person's head and shoulders, used as a default avatar

On-demand package installation in openSUSE 11.3

KDE Project:

You most probably have already run into this at least once. You use the computer, try to do something and you get an error message saying "sorry, application foo is not installed", "the required plugin bar is not installed" or similar. And that's it, there it stops. You have to find out what package the required functionality is in, install it manually and try again. Like if the computer couldn't ask "but maybe I can install that, do you want me to try?" and handle it itself.

And that's what my goodie for this openSUSE release is about. I've been examining a bit about what various parts of the desktop could do this and there indeed are some cases. For example, clicking in Dolphin on a file that has no associated application installed usually results in the "Open with?" dialog. And that dialog has nowhere in it the option "the application that can open it, silly". Especially given that if the installation medium is accessible (i.e. usually if the network connection is up), it's rather easy to find out the right application for the file and install it:

KSUSEInstall #8

This specific case is actually a bit tricky. The file, example.kvtml, is a file with pairs of words or expressions that e.g. KWordQuiz can use for teaching (words for language lesson, for example). The problem is that technically the data is stored as XML and the mimetype (file types) specification has a concept of subclasses that is and in not useful depending on how you look at it. A C++ source file is a subclass of a plain text file, so you can edit it just like a plain text. Good. An XML file is also a subclass of a plain text file, so you can view XML as plain text. Good? I'm not quite sure on this one, since while XML is human-readable, any decent up-to-date XML is certainly not human-understandable anyway, so I fail to see the point. But, since .kvtml files are XML files, they are a subclass of them, and that means you can view them just like a plain text.

KSUSEInstall #7

Good??? Probably not. They are supposed to be opened in an application that can show the lesson nicely, who'd be crazy enough to decipher it from the XML? Well, but that's the reason for the dialog looking this way, the above is what the dialog is trying to tell you. Sorry :). This should get eventually sorted out somehow in the mimetype specification, but for now I had to go with this.

The short version is: Just say you want an application that can handle exactly the file type, that's usually the right choice here. And if there are more applications that can handle it, you'll get a choice:

KSUSEInstall #9

There is another, rather obvious case, where this can be useful. Amarok on its first start usually likes to complain about lack of support for certain well-known and widely used multimedia format and 11.3 will be no different. However, Amarok has also some support for solving this problem and has this dialog:

KSUSEInstall #1

And that is where the new feature comes into play.

KSUSEInstall #2

This time, however, there is the usual problem: The openSUSE distribution is not allowed to include the necessary support, because <a lot of ugly legal babble that causes headache>. Some distributions may try to include it and hope that residing in a country without such laws solves the problem. Or, even better, not having a load of money in bank avoids a lot of trouble too (what's the point of sueing somebody who can't pay afterwards, these merry patent folks don't do it just for the sports). That doesn't quite work for openSUSE, being supported by Novell, and I bet every big company has been already sued for much more stupid things than this, just in case it'd work out. So openSUSE simply can't include the support and can't even really tell you where to get it. As long as the world is the way it is, there can't even be any "install all I need" button in openSUSE. Sorry. That's the way it is :(.

So what happens in this case it that the required packages will not be found. However, there are many repositories for openSUSE not provided by openSUSE, and you can add the right one and try again (BTW, the URL in the link doesn't work yet, that will be fixed in time for 11.3).

KSUSEInstall #3

Choosing to enable additional repositories will simply launch the YaST module for configuring repositories. And, as I said, it cannot point you "here" and tell you which repository to add (because, if nothing else, it doesn't know anyway). But adding a repository is not really that hard.

KSUSEInstall #4

After adding the right repository it will proceed with installation. Again, the usual allmighty YaST. Nothing hard about it, and this part should be mostly automatic anyway.

KSUSEInstall #5

There it is. As simple as possible (sigh) and now it's ready (but the dialog is actually right, restart is required for technical reasons).

KSUSEInstall #6

There of course can be more places where this could be useful. The crash handler has already support too, so generating proper bugreports with full backtraces should be now much simpler as well. This is so far just experimenting with the feature and seeing how it works out, if it works well, even more can be added after 11.3.

a silhouette of a person's head and shoulders, used as a default avatar

A Linux type?

As part of what we do, we help business people migrate over from their usually rotten Windows XP, Vista and what ever else incarnation of Redmond OS over to Linux. We found that some people really took to Linux while some got stuck in purgatory complaining constantly in the transition period. I found that certain types of personality as well as expectations makes the whole process smooth and dare I say even enjoyable?

  • I found that the more open the new user is to a new OS, being more open to forget about Windows they are the more enjoyable the process is. "This used to work so much better on my laptop in Windows ..." kinda attitude will almost guarantee a world of pain.
  • Having a positive attitude helps ... as in you are home ... your printer does not work instantly ... instead of just chalking it up to the new OS being bad just give it a whirl and think of the fun of trying out something new will make it enjoyable. 
  • Trusting your new OS as well as your new found friend (me) when it comes to buying peripherals will help during the transition. 
Those with the attitude above really took to Linux like fish to water and it sorta became their bragging rights in among their friends. Remember too that these are pure business people without any prior Linux experience. So it's gratifying to me to over hear them in conversation with their friends "Aiya ... you are still using that slow piece of crap .. see my new Open Source OS! No virus can touch it and it's blazing fast!" It's nice to know we did one for Linux advocacy in our own way as well as fill our pockets up a bit :).

the avatar of Andrew Wafaa

Community Discussion - Part 8

Enterprise in the Community It has been mentioned that the Geeko is somewhat of a schizophrenic at times, and do you know what I kind of have to agree. The difference is I disagree on how the schizophrenia affects our dear friend. Most people think that the multiple personalities are desktop related – you know, KDE vs GNOME vs XFCE vs $DE. I on the other hand feel it is to with audience – Enterprise vs Consumer.

a silhouette of a person's head and shoulders, used as a default avatar

Wiki structure: New tools

or basic inventory of what we have.

Temporary openSUSE Wiki is created few moths ago to allow test of new tools and content reorganization  without disrupting daily operation of openSUSE Wiki. It is running on MediaWiki version 1.15.1. The basic software is already much better then the old version 1.5, but the goal is not only to have one time cleanup, but also to organize wiki that will provide benefits for all involved parties: visitors, writers and maintainers. To achieve this we added few extensions to the basic MediaWiki listed here .

Semantic MediaWiki  is complex extension that has its own extensions.It can become one of our flagships, but at the time of this post I don't know much about it.

We already have working implementations of the following extensions:

CategoryTree is navigational tool, intended to provide compact list of other pages that user might want to visit. It is based on MediaWiki categories , which means that creation and maintenance of categories and its structure, is one of the primary tasks for all involved.

FlaggedRevs will allow better content quality control. It is set to show casual visitors only article revisions that passed quality control process. Editing is not prevented, so anyone can change page content, but that is hidden from visitors until some of reviewers check the article.

MultiBoilerplate is meant for simplified creation of articles, providing ready to go templates for different types of articles that wiki user can choose from drop down list.  The openSUSE version is patched to allow different sets of templates for different namespaces.

InputBox provides 3 functions:
  • Different modes search boxes, 
  • Creation of pages using predefined templates, which overlaps in functionality with MultiBoilerplate to some extent, but allows article writer tight control over used template.
  • Adding comments to existing pages which can be used, for instance, to simplify collection of user comments, user contributed tips, simplify contribution to hardware compatibility list.
DynamicPageList is navigational tool that lists selected content of one or more categories. It overlaps with CategoryTree when it shows content of a single category.

ParserFunctions  allow some kind of macro language to be used in templates.


SimpleFeed  is used to import feeds from other pages to the wiki. It was used in old wiki for the right column news.It can be used to import news to any of the portal pages.

VideoFlash is simple extension that allows author to embed YouTube and other Flash videos in the wiki pages.

SyntaxHighlight will make easier reading of the code snippets on the wiki page.

Tools for users and administrators:

SpecialInterwiki   is a tool for wiki administrators.

Hermes Notify is our notification agent.
the avatar of Andrew Wafaa

openSUSE GNOME Team Meeting

It has been far too long since the GNOME Team actually put their heads together and talked about what is going on in the garden. As such regular meetings are re-starting, but with a slight difference – it will be monthly on the 3rd Tuesday of each month at 1400UTC, for localised times please see here.

That means the next meeting will be held this Tuesday, 18th May 2010, in the garden (otherwise known as #opensuse-gnome on Freenode). The Agenda is pretty simple and can be added to on the wiki. For those curious it will kind of follow the lines of:

1. openSUSE GNOME Status
1.1 Packaging
1.2 Bugs
1.3 Q & A
2. Upstream GNOME Status
2.1 What’s New
2.2 Bugs
2.3 Q & A
3. General Q & A

So please come buy the garden, pull up a chair and crack a cold one open. Join in the fun and add anything you need to the agenda.

the avatar of Andrea Florio