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

Управление пакетами в (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

Установка бесплатная панели управления сервером Webmin на Linux Debian

Из своего любопытства решил я посмотреть, какие бывают панели управления и конфигурации, как ими пользоваться. Причем хотелось найти именно бесплатную панель. Поэтому мой выбор остановился на Webmin. Как пишут ее создатели, webmin — это веб-интерфейс для системного администрирования unix-систем. Используя любой современный браузер, можно управлять аккаунтами пользователей, веб-сервером Apache, DNS и многим другим.
Тестировать webmin я решил на виртуальной машине с Linux Debian на борту.
О том, как надо устанавливать панель Webmin на Debian, можно почитать здесь — совсем ничего сложного.
Я выбрал установку через репозиторий, так как это дает возможность обновлять webmin намного проще, нежели скачивая каждый раз свежий deb-пакет. Кроме того, при установке из репозитория aptitude или apt-get сам разрешит все зависимости, не придется в ручную ставить пакеты типа perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl.
Итак, добавляем репозиторий webmin в список репозиториев. Для этого надо добавить строчку «deb http://download.webmin.com/download/repository sarge contrib» в файл /etc/apt/sources.list.
После этого желательно установить gpg-key для этого репозитория. Выполняем для этого 2 команды:

wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc

Далее, обновляем список репозиториев и устанавливаем webmin:

sudo apt-get update
sudo apt-get install webmin

.
После того, как webmin установится на нашу систему, надо перебросить порт управления webmin'ом на виртуальную машину. Обычно это порт 10000. Как это сделать, я описал в предыдущей статье. Разумеется, если вы ставите webmin на реальную машину, ничего пробрасывать никуда не надо:)
И все, переходим на страницу https://localhost:10000, и видим приветствие webmin'a:

.

Автор: AlexWinner
Дата публикации: 2010-05-21T08:26:00.000-07:00

VirtualBox in Debian — проброс портов (port forwarding) на гостевую машину

Предыстория: решил я потестить панель управления хостингом Webmin. Установку самой панели я опишу в другой статье. В этой же постараюсь рассказать о том, как прокинуть порт, чтобы снаружи можно было зайти на веб-интерфейс этой панели.
При пробросе порта я руководстовался этим постом.
Решение:
Для порт форвардинга можно воспользоваться утилитой VBoxManage. Надо выполнить следующие команды:

$ VBoxManage setextradata «VBoxInternal/Devices/pcnet/0/LUN#0/Config/webmin/HostPort» 10000
$ VBoxManage setextradata «VBoxInternal/Devices/pcnet/0/LUN#0/Config/webmin/GuestPort» 10000
$ VBoxManage setextradata &ly;guestname> «VBoxInternal/Devices/pcnet/0/LUN#0/Config/webmin/Protocol» TCP

Итак, здесь означает имя виртуальной машины, в нашем случае «debian-test». Напротив HostPort и GuestPort — порты, которые слушаются на главной и виртуальной машине. Т.е. те самые, который мы будем перебрасывать.
После этого остается только перезапустить VirtualBox.
Чтобы удостовериться, что все работает, можно выполнить следующую команду:

sudo netstat -nlt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:29209 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN

Мы видим, что порт 10000 находится в состоянии LISTEN, т.е. прослушивается. Зайдя через бразуер host-машины на адрес https://localhost:10000, мы попадаем на страничку Webmin-интерфейса.

В дополнении осталось так же заметить, что конфиги виртуальных машин лежат обычно здесь — ~/.Virtualbox/Machines//.xml.

Автор: AlexWinner
Дата публикации: 2010-05-21T08:02:00.000-07:00

linux: объединение нескольких видеофайлов avi с помощью mencoder

А вот как с помощью mencoder слить любое количество мелких видеофайлов в один большой. Без перекодирования, просто объединение «как есть». Как известно, через cat простой конкатенацией не все контейнеры корректно сливаются. AVI точно не слить.

mencoder -oac copy -ovc copy ./file1.avi ./file2.avi -o ./full.avi

Возможно, таким образом (без перекодирования) корректно сольются только куски с одинаковыми характеристиками кодирования, типа куски одного видео, это надо экспериментировать.

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

fedora 12

Я давно употребляю линукс, и довольно давно из этого времени — fedora linux (несколько лет назад — fedora core). В конце осени вышел следующий релиз «фетровая шляпа 12 константин», очередной раз решил мажорно обновить. Тем более приключались некоторые глюки в стоящей 11-й версии и вообще накопилось каких-то коллизий с пакетами, каких-то проблем с пульсаудио и прочим, которые создателями решались медленно. Обычно к концу версии по большей части они забивают на заплаты и остаётся ждать нового релиза, где именно эти глюки обычно причёсаны, что не мешает появляться новым, конечно. Ну и в целом — решил переставить на новый комп в этот раз 64-битную версию линукса. Боялся долго, но пора.

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

На моей памяти бывали отличные релизы, когда ставишь и радуешься, а порой сразу почти бывают проблемы, которые только со временем решаются. Всё это оборотная сторона прогрессивно направленной федоры. Иногда излишне прогрессивно, но каждый выбирает что ему ближе. Всё же это лучше непрогресивной, но не менее глючной убунты или чего ещё. Вот так и с пульсаудио произошло в 11й версии — музыка взяла и пропала. Зато когда прилизали его на место с обновкой — всё отлично стало. Регулятор всего и вся, отдельная настройка звука и микшер от каждого приложения и прочее нужное и ненужное. Вобщем, я не жалуюсь и доволен, нам с домохозяйками не по пути.

Мажорно обновляться я люблю только с установочного DVD. Установка полная заняла 15 минут. Мы уже в системе, сеть нашлась во время установки и выкачала всякие заплатки. Раскладка сама не встала (раньше автоматом добавлялась согласно выбранной локали при установке), пришлось добавить. Сеть: после загрузки оказалось, что её прибил NetworkManager (он решил чего-то там мне донастроить), пришлось кликнуть «подключить» на иконке нетворкманагера в трее. В дальнейшем я его снёс (отключил навсегда его службу, включил навсегда службу network), ибо без надобности — у меня сеть поднята на роутере.

Далее «yum install mc», ибо почему-то midnight commander по уполчанию никогда не стоит, что странно немного.
Ещё раз всплыла табличка — пришло 91 новое обновление. Обновил.

Пользуюсь гномом, обнаружил свежий по виду чёрный попап, всплывают красиво и вообще готичненько. Ещё какие-то новые иконки системных папок и прочие красоты нового гнома.

Проблемы обнаружились такие: ранее клёвая оболочка для пакетного менеджера yumex стала вообще стрёмной и непонятной. Что сделал с ней автор — я не вкурил. Ещё нашлась проблема при удёленном коннекте к freenx, если комп выступает как сервер — не переключаются раскладки и не грузится вообще раскладочный демон. Хотя nxclient работает нормально.

Обязательно ставим сторонние репозитории: rpmfusion и russianfedora. И, если надо кое-какое совсем несвободно бинарное (типа VirtualBox-не-OSE) то ещё и tigro non-free.

При обновлениях заметил, что качает уже drpm-пакеты, то есть свежая долгоожидаемая фича delta RPM (presto) уже по дефолту в федоре.

Ставим нужные проприетарные кодеки (gstreamer-plugins-ugly), из неродного, конечно, репозитория. Ставим flash, из рашенфедоры отлично работает, что удивительно — флеш совершенно не тормозит даже на полный экран (!). Праздник добрался и до нашей улицы.

Ставлю проприетарный kmod-nvidia, перезагрузка, всё распрекрасно работает. Ставлю Virtualbox (не OSE, из репозитория non-free), модуль ядра сам собрался, всё заработало. Виртуалбокс юзаю для второй системы, в которой разработки веду.

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

з.ы. кросспост с уфакода, скопировал и сюда, пусть лежит

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