Uniвсячина

понемножку о Linux и программировании

Установка свежих драйверов для NIC Intel 1000/Pro на Debian Sarge

Тут понадобилось поставить на Debian Sarge свежий драйвер e1000 отсюда.

В инструкции по инсталляции написано было распаковать все это дело и, зайдя в подпапку src/, запустить make install. Проделав сию операцию, с огорчением обнаружил, что make ругается на отсутствие исходников ядра. Поставил исходники 2.6.8-3-686-smp. Эффекта ноль. Полез смотреть, чего ему там нужно. Оказалось, что нужно ему include/linux/version.h и include/linux/autoconf.h. То есть нужны не просто исходники, а сконфигурированные исходники. Долго думал где их ему взять.

Как оказалось в итоге, нужно было просто поставить пакет kernel-headers-2.6.8-3-smp (вместо 2.6.8-3-686-smp нужно подставить результат выполнения команды uname -r). И самое главное, что как то в процессе гуглевания, никаких мануалов и хау-ту на эту тему не нашел. Так что надеюсь несколько потраченных часов на решение этой проблемы кому нибудь пригодятся.

Настройка Nginx для работы с Typo

Кто не знает, Typo — это такой блог-движок написанный на Ruby on Rails. Весьма достойная и удобная вещь. А учитываю мою слабость к продвинутым ОО-языками программирования, типа Ruby, еще и удобная платформа для реализации своего функционала.

Вполне естественно желание заставить nginx отдавать всю статику (картинки, видео, css-файлы, js-файлы) не дергая движок лишний раз. Усложняется всё тем, что Typo прозрачно вычисляет путь до файл в соответствии с активированным скином (темой). Путем экспериментов удалось наваять вот такой вот конфиг (тут я привожу фрагмент секции server { … }, отвечающий за отдачу статики):

# указано имя каталога активированной темы
# из каталога /[путь до каталога с typo]/themes/
set $theme "scribbish";

location ~* ^/javascripts/.+.js(?d*)?$ {
  root /[путь до каталога с typo]/public;
}

location ~* ^/stylesheets/theme/.+.css(?d*)?$ {
  rewrite ^/stylesheets/theme/(.+.css)(?d*)?$ /theme/stylesheets/$1 last;
}

location ~* ^/images/theme/.+.(gif|png|jpg|jpeg)(?d*)?$ {
  rewrite ^/images/theme/(.+.(gif|png|jpg|jpeg))(?d*)?$ /theme/images/$1 last;
}

location ^~ /theme/ {
  internal;
  alias    /[путь до каталога с typo]/themes/$theme/;
}

Сам себе бэкпортер

Частенько на серверах с установленным Debian Sarge нужно поставить какую нибудь софтину версией посвежее чем в stable репозитарии. Ставить бинарные пакеты из testing или unstable на продакшн – не наш метод. Хорошо, если есть сторонние репозитарии с готовыми пакетами. А если нет, то приходиться засучить рукава и на время превратиться в бэкпортера. Сейчас я покажу как можно легко и непринужденно поставить на сервер, скажем Ruby 1.8.5. Поехали!

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

apt-get install devscripts

Потом пропишем в /etc/apt/sources.list репозитарий unstable исходников (и только исходников):

deb-src http://ftp.debian.org/debian/ unstable main

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

apt-get update

Качаем самые свежие исходники Ruby:

apt-get source ruby

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

apt-get build-dep ruby

Заходим в папку с исходниками и компилируем:

debuild -us -uc
cd ..

Дальше я делал таким образом: ставил виртуальные метапакеты ruby, irb, rdoc, ri

apt-get install ruby irb rdoc ri

А потом апгрейдил скомпилированными пакетами:

dpkg -i *.deb
ruby -v
> ruby 1.8.5 (2006-08-25) [i386-linux]

Готово!

По подобной схеме можно сделать бэкпорт практически для любой новой версии пакета.

.DEB-пакеты из исходников

Очень мне захотелось поставить себе на убунту-десктоп новый Gajim 0.11. А облом – ни в репозитарии убунту, ни в бэкпортах его до сих пор нету. И неизвестно когда будет. Единственное решение которое напрашивается – ставить из исходников. Конечно не просто так, а с checkinstall, чтобы не разводить помойку из файлов, которые потом ни найти, ни удалить.

И очень кстати попалось видео на тему Anatomy of A Debian Package. Повтыкал я его час, и решил что и мне не слабо сделать бинарный пакет с новым gajim-ом из исходников. Два часа работы – и готово. В первый раз конечно все это делать сложно и непривычно. Но как говорится – лучше день потерять, зато потом…

Gajim 0.11 из самопального пакета поставился и даже успешно запустился. Как ни странно. Тем кто захочет повторить сей подвиг, могу посоветовать почитать еще вот это.

Линукс наступает

Читая западные новостные источники, все чаще и чаще натыкаюсь на статьи, где люди пытаются понять не пришел ли час Икс – час когда линукс десктоп может выходить в BigBiz. Вроде как выходит, как настал. Десктоп-дистрибутивы типа Ubuntu могут за 20 минут установить офисное рабочее место с Evolution, FireFox, OpenOffice. Ну а весь недостающий софт ставится в пару кликов мыши. Это одна сторона медали. Другая сторона – Виста. Большая, тормозная и глючная. И за неё надо отдавать деньги. А в большом бизнесе не любят отдавать деньги ))

В общем аналитики, все как один, задают вопрос – если не сейчас, то когда? Попытки отложить час Икс на 2007 год наталкиваются на контраргумент – если сейчас не перейти, то в 2007-ом в умах плотно засядет Виста и фик оттуда её выгонишь ))

Мое лично имхо – если добавить чтобы средства сетевой работы (такие как авторизация через единственное хранилище пользовательских аккаунтов, легкая настройка VPN-коннекта, профили в GConf, ну и чтобы всем этим можно было рулить через нормальные заточенные под это программы) работали из коробки, то линукс можно ставить на десктоп в организациях уже сейчас. К ОпенОфису уже все попривыкли, так почему бы не привыкнуть и к новому десктопу?