июня 21, 2007

Замена Sendmail на Postfix в Solaris 10

В Solaris 10 сильно не понравилось отсутствие родного Postfix - все-таки настройка Sendmail это не тривиальная проблема. Проще его снести и поставить что-то приличное. Как это сделать смотрите здесь. У меня все установилось без проблем (V490/SPARC).


► Статья полностью...

Open Source Software for Solaris

Жутко надоело работать с SUNFREEWARE - весьма нудно ставить пакеты и вручную разбирать зависимости. Я уж было решил, что на солярке все так - гм... криво. Оказалось, что не все! Нашел поразительно удобный репозитарий OpenSource пакетов для Solaris 10 - BlastWare. Ну прямо почти как yum! Очень обрадовался. Пользоваться легко - читаем HOWTO, устанавливаем пакет утилит, и все. Можно устанавливать любой пакет из репозитария с автоматическим отслеживанием зависимостей и поддержкой обновлений. Например устанавливаем fortune:
$ sudo /opt/csw/bin/pkg-get -i fortune

► Статья полностью...

июня 18, 2007

Обновление FC6 - FC7

Ну вот, решил обновить свою Fedora Core 6 на 7. Посмотреть на подвижки на фронте разработки FC... Запасся всяческими полезными от здоровья вещами, т.е. пивом, вкусным ужином и DVD с FC7 и вечерком в пятницу засел за медитацию на своем IBM ThinkPad Z60t.

В общем в течении одного-двух часов это было довольно скучное занятие, ничего не происходило, кроме сосредоточенного шуршания винчестера. Я уж даже было поверил, что мне таки удасться обновить систему на гоп-стоп :/

Но потом таки началось развлечение! Сначала, практически закончив все устанавливать инсталлятор anaconda вывалился с какой-то дикой ошибкой, видимо не справившись со всеми этими зависимостями и нимало сумняшись пошел на ребут... Вообще конечно странно и немного непонятно - зачем сосредоточенно готовить какую-то транзакцию по установке, если она не откатывается по ошибке?

Она естественно и не откатилась... Правда система загрузилась практически без проблем, ну не считая каких-то невразумительных выкриков nash. И естественно оказалось, что старые пакеты не деинсталлированны и у меня 5.5G винта забросано системой, что собственно ровно в 2 раза больше нормального.

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

В общем нужно удалить старые пакеты FC6... Не особо приятно, но надо. Первое, что пришло в голову - делаю выборку всех fc6 пакетов в файл stale.fc6 :

$ sudo rpm -qa | grep "fc6$" | tee stale.fc6

И получаю 800 с лишним пакетов. Гм. Будем резать. Что еще остается?

# cat stale.fc6 | xargs rpm -ev

Естественно вывалилась куча ошибок. Оказалось, ну не то чтобы совсем неожиданно ;), что много fc6 пакетов входят стандартно в fc7. Соответственно есть зависимости. Эти пакеты я не трогаю, просто либо удаляю их из файла stale.fc6, либо прописываю то, что от них зависит. Не мудрено, что инсталлятор сдох...

После того, как нужные пакеты все таки удалились, оказалось что удаляясь они частично попортили уже установленные новые пакеты. А вот это неприятно. Нужно восстановить установленные пакеты fc7.

Восстановление пакетов FC7

Это вот сложнее, чем удалить старые пакеты. Пришлось писать маленькую программку:

#!/usr/bin/perl
# (C) 2007 by Vladimir Kolundin
# Check broken rpms
# Parameters: path of the RPM storage (e.g. DVD)

use strict;

my ($cur_rpm, $cur_arch, $is_bad, $repo);

$repo = shift;
open(RPMH, "rpm -qa 2>&1 |") ||
  die "[938826] Can't execute rpm utility.";

while(<RPMH>) {
  chomp;
  $cur_rpm = $_;
  $is_bad = 0;
  open(CURH, "rpm -q --verify --nodigest $cur_rpm 2>&1 |") ||
    die "[248984] Can't execute rpm utility.";

  while (<CURH>) {
    if (/^missing/i) {
      next if m[/usr/share/doc/];
      $is_bad = 1;
      last;
    }
  }

  close CURH;

  if ($is_bad) {
    $cur_arch = `rpm -q --qf '%{ARCH}' $cur_rpm`;
    $cur_rpm = "$cur_rpm.$cur_arch.rpm";
    print "$cur_rpm\n" if (-e "$repo/$cur_rpm");
  }
}

Суть программки состоит в следующем:

  • Открываем вывод утилиты rpm как файл.
  • Проводим верификацию каждого пакета в выводе на предмет missing файлов, а так как я не особенно не торопился (C), то пакеты у которых не хватает только документации пропускаем (next if m[/usr/share/doc/];).
  • Для найденных битых пакетов ищем файлы на DVD (путь к репозиторию - параметр скрипта), ибо что толку найти битый пакет и не иметь возможности его переустановить?

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

# perl check-missing.pl /media/cdrom/Fedora | tee reinstall.fc7
# cd /media/cdrom/Fedora
# cat ~/reinstall.fc7 | xargs rpm -Uhv --force

В результате у меня все пакеты были переустановлены. Осталось только навести глянец.

Наводим глянец

Естественно я подразумеваю, что интернет Вы уже настроили ;) Я же обновляю систему, а не устанавливаю.

Устанавливаем репозиторий LIVNA:

$ sudo rpm -Uvh \ http://rpm.livna.org/fedora/7/i386/livna-release-7-2.noarch.rpm

Приводим в порядок шрифты

$ sudo rpm -Uvh \ http://avi.alkalay.net/software/freetype.bci/FC7/freetype-freeworld-2.3.4-1.i386.rpm

Перезапускаем иксы. Чтобы понять, как это работает читаем Linux Font HOWTO.

Устанавливаем шрифты Web Standard Fonts

Эти пакеты содержат популярные шрифты, такие как Arial, Times New Roman, Tahoma, Verdana, а так же новые шрифты Windows Vista and MS Office 2007. Подробнее смотрим здесь.

$ sudo rpm -Uvh \
http://avi.alkalay.net/software/webcore-fonts/webcore-fonts-3.0-1.noarch.rpm \
http://avi.alkalay.net/software/webcore-fonts/webcore-fonts-vista-3.0-1.noarch.rpm

После этого настраиваем рабочий стол как описано в Linux Font HOWTO, для KDE или Gnome.

Поддержка MP3

$ sudo yum -y install kdemultimedia-extras-nonfree id3v2

Устанавливаем Amarok

$ sudo yum -y install amarok-extras-nonfree

Устанавливаем DVD плеер

$ sudo yum -y install vlc

Вот собствено в общих чертах и все... В районе 5:30 утра я пошел спать. Вполне удовлетворенный :)


► Статья полностью...