суббота, 21 августа 2010 г.

Duke Nukem 3D в Debian GNU/Linux

Продолжаю серию заметок о запуске старых игр - стрелялок от первого лица:
  1. Quake в Linux
  2. Запуск Quake на движке Nexuiz
  3. Quake2 на Debian GNU/Linux
На этот раз я откопал современный порт Duke Nukem 3D, который называется Eduke32. Официальный сайт проекта находится по следующему адресу: http://www.eduke32.com/ Для установки движка игры воспользуемся репозиторием Debian на сайте проекта. На странице Apt Repository находим интересующий нас раздел Lenny. В соответствии с инструкциями добавляем репозиторий в систему, прописав следующие две строчки в файл /etc/apt/sources.list:
deb http://apt.duke4.net lenny main
deb-src http://apt.duke4.net lenny main
Теперь добавим PGP-ключ репозитория с помощью следующей команды:
# wget http://apt.duke4.net/key/eduke32.gpg -O- | apt-key add -
Обновим список пакетов:
# apt-get update
И установим интересующие нас пакеты с движком игры и с условно-бесплатной версией самой игры:
# apt-get install eduke32 duke3d-shareware
Кроме этих двух пакетов в репозитории имеются ещё два пакета: build-engine-utils - коллекция инструментов, предназначенных для манипуляции данными игр, основанных на движке Build (из таковых я припоминаю ещё игры Blood, Redneck Rampage и Outlaws) и mapster32 - редактор карт, работающий в режиме OpenGL. В общем, в этом репозитории, похоже, есть всё необходимое, чтобы делать новые карты и модификации игры.

Но это ещё не всё. Ещё я нашёл проект High Resolution Pack, в рамках которого люди занимаются повышением разрешения текстур и заменой всех спрайтов на модели: polymer_hrp132.zip, архивчик уже достиг объёма 466 мегабайт!

Скачаем последний релиз HRP и распакуем его в каталог с настройками личными игры текущего пользователя:
$ wget http://www.duke4.org/files/nightfright/beta/polymer_hrp132.zip
$ unzip polymer_hrp132.zip -d ~/.eduke32
Теперь при запуске игры, в окошке выбора разрешения нужно указать использование движка Polymer, который как раз и умеет рисовать трёхмерные модели.

Вот так игра выглядит на разрешении 1280x1024 без использования HRP:

А вот так выглядит на разрешении 800x600 с использованием HRP:

Ещё пара снимков с использованием HRP. Этот с разрешением 1280x1024:

Этот с разрешением 800x600:

Имеются, однако, и недостатки - игра довольно сильно тормозит, требует много ресурсов (на моём компьютере игра отъела полгигабайта памяти в режиме без HRP), отчего иногда замораживается секунд на 5-10 и иногда падает. Если хотите поиграть в игру полноценно, советую найти полную, не условно-бесплатную версию файла ресурсов и уменьшить настройки качества картинки.

пятница, 13 августа 2010 г.

Lighttpd и gamin

Ранее я уже писал, что начал пользоваться Mathopd: Биография одного домашнего сервера и настройка Mathopd. Тогда я решил попробовать его, потому что привычный Lighttpd отказывался устанавливаться в отсутствии famd, а famd конфликтовал с gamin, который я установил, чтобы избежать внезапных зависаний программ: famd vs gamin. Нужно было пересобрать Lighttpd с gamin вместо famd, но мне тогда было лень этим заниматься, т.к. это было прекрасным поводом попробовать Mathopd :)

На днях Mathopd мне наконец надоел и я решил всё-таки собрать Lighttpd с gamin. Рецептом сборки этой связки я и хочу поделиться.

Для начала, скачаем исходники:
$ apt-get source lighttpd
И перейдём в каталог с распакованными исходниками и информацией для сборки:
$ cd lighttpd-1.4.19
Затем, заглянем в файл debian/control и просмотрим список зависимостей для сборки пакета (Build-Depends): debhelper (>= 5.0.0), cdbs, mime-support, libssl-dev, zlib1g-dev, libbz2-dev, libattr1-dev, libpcre3-dev, libmysqlclient15-dev, libfam-dev, libldap2-dev, libfcgi-dev, libgdbm-dev, libmemcache-dev, liblua5.1-0-dev, quilt, patchutils, pkg-config, uuid-dev, libsqlite3-dev, libxml2-dev, libkrb5-dev, perl

Установим всё это хозяйство, за исключением libfam-dev, который мы заменим на libgamin-dev:
# apt-get install debhelper cdbs mime-support libssl-dev zlib1g-dev libbz2-dev \
  libattr1-dev libpcre3-dev libmysqlclient15-dev libgamin-dev libldap2-dev libfcgi-dev \
  libgdbm-dev libmemcache-dev liblua5.1-0-dev quilt patchutils pkg-config uuid-dev \
  libsqlite3-dev libxml2-dev libkrb5-dev perl
Теперь отредактируем файл debian/control, заменив в нём libfam-dev на libgamin-dev.

Далее, опишем изменения, сделанные в пакете с помощью dch:
$ dch -i
Я внёс следующее описание сделанных изменений:
lighttpd (1.4.19-5+lenny1gamin) stable-security; urgency=low

* Changed dependency from libfam-dev to libgamin-dev.

-- Vladimir Stupin <wheelof@gmail.com>  Fri, 13 Aug 2010 10:17:22 +0600

Осталось лишь собрать изменённый пакет:
$ dpkg-buildpackage -b -us -uc -rfakeroot
Всё. Переходим в каталог выше, где и находятся собранные пакеты:
lighttpd_1.4.19-5+lenny1gamin_i386.deb
lighttpd-doc_1.4.19-5+lenny1gamin_all.deb
lighttpd-mod-cml_1.4.19-5+lenny1gamin_i386.deb
lighttpd-mod-magnet_1.4.19-5+lenny1gamin_i386.deb
lighttpd-mod-mysql-vhost_1.4.19-5+lenny1gamin_i386.deb
lighttpd-mod-trigger-b4-dl_1.4.19-5+lenny1gamin_i386.deb
lighttpd-mod-webdav_1.4.19-5+lenny1gamin_i386.deb
Устанавливаем нужные пакеты с помощью dpkg и пользуемся:
# dpkg -i lighttpd_1.4.19-5+lenny1gamin_i386.deb

среда, 4 августа 2010 г.

Доступ к буферу обмена X Window System из командной строки с помощью xclip

Перевод статьи: Access the X Window System Clipboard from the Command Line with xclip

17 марта 2009, Эрик Фэлор (Erik Falor)

Вы когда-нибудь выделяли текст в окне терминала, чтобы скопировать его в X-приложение? Отбросьте мышь и воспользуйтесь вместо неё xclip. С помощью xclip вы просто перенаправляете через конвейер в xclip тот текст, который вы хотите скопировать:
$ lspci | xclip
Теперь перейдите в X-приложение и вставьте захваченный вывод в программу. xclip также позволит вам “вставить” выбранный текст в терминал. Просто воспользуйтесь опцией -o для вывода выделенного текста:
$ xclip -o
xclip можно найти на sourceforge.net/projects/xclip.