Tag Archives: linux

О линуксе, часть 1

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

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

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

Всем известный пример — это установка kde4. Чтобы одним глазком посмотреть на это чудо техники, нужно полностью удалить из системы старые кеды. А затем, вдоволь насмотревшись, сносить их и устанавливать старые пакеты.

Или вот другой пример. Нужен мне последний dmx. Если попробовать установить его, то он потянет вместе с зависимостями новые иксы, которые мне нафиг не сдались, потому что: я не хочу работать на этом глюкодроме; в нём поломата совместимость с проприетарным драйвером fglrx. Разумеется, я был бы счастлив, если бы новые иксы установились куда-нибудь в сторонке, обеспечивая запуск нового dmx, а работал бы я со старыми иксами. Но куда уж тут — при установке старая версия просто сотрётся новой, и у меня ничего не будет работать.

Это абсурд! Почему пакетный менеджер должен решать, что мне делать, а что нет? С установкой нескольких версий одной и той же программы даже в windows лучше. Там можно преспокойно установить две разные оперы в «Program Files/Opera9.6/» и в «Program Files/Opera10.0/», и обе будут работать. «А-а, тогда придётся держать в памяти по две копии библиотек!» — да, придётся. А какая мне разница, когда мне нужно, чтобы работало здесь и сейчас?

  • Кстати, надо про «оно же на qt/gtk» отдельно написать. Я с этих либоёбов хуею с самой первой установки Slackware. «Какой плеер посоветуете?» — «Amarok» — «Бе-е, он на кутях…» Нет, честное слово, таких задротов даже среди линейщиков нет. Тебе что надо — музыку слушать или дрочить на библиотеку? Вендузятнеги ставят свои любимые статически слинкованые оперы и им глубоко пофигу, на чём они написаны. Странички показывает — и хорошо. Но эти ж, блядь, «элита». Им рассовую чистоту в /usr/lib надо.

Для тех, кто ещё не понял — это и называют dependency hell’ом. Да-да, ваша хвалёная система по отслеживанию зависимостей вовсе не рулит. Да-да.

Реклама

Оставьте комментарий

Filed under Без рубрики

Approx

Выполняет ту же функцию, что и apt-proxy и apt-cacher — кеширующего прокси-сервера для apt-get’а. Разница в том, что он проще и не вешается при закачке пакетов с нескольких машин на узком канале. А ещё, в отличие от перлового говна, в нём исходники читаемые. Советую перелазить на него тем, кто ещё не перелез.

Оставьте комментарий

Filed under Без рубрики

Debian-amd64

Поставил себе. При включённом cpu scaling в режиме ondemand стал заикаться звук. Починить не смог. Нафиг, не хочу такого счастья.

А субъективно amd64 работает быстрее, хотя самодельные тесты прироста в производительности больше 5% не показывают.

2 комментария

Filed under Без рубрики

Про archlinux

про archlinux

8 комментариев

Filed under Без рубрики

Приложение к запискам о SLAX’е

Как загрузиться с флешки, если BIOS не поддерживает загрузку с USB?

Такое можно часто встретить на старых компьютерах. USB-контролёр есть, а загрузку с него BIOS не поддерживает. Дабы избежать такой несправедливости, Томас подготовил маленькие образы для CD, загружающие ядро и и загрузочный образ. Их можно найти на ftp://slax.org, записать на mini-cd и таскать при себе где-нибудь в кошельке.

Однако этот загрузочный образ сведёт на нет все наши старания по юникодизации системы. Если вы настраивали русский язык так, как писал я, то будет лучше записать образ с другим initrd, корректно работающим с русским языком. Такую исошку я сделал, её можно скачать под именем slax-boot-usb-from-cd-utf8-x.x.x.iso здесь:

http://komar.bitcheese.net/lzms/russian-utf8/

Модули

Так как разработка SLAX’а сейчас фактически стоит на месте, приходится делать свои модули для необходимых программ.

Собранные мною модули в красивом каталоге со скриншотиками лежат на slax.org: http://www.slax.org/modules.php?author=874

Но, по закону мироздания, это сайт часто бывает недоступным. Поэтому я зеракалирую их здесь: http://komar.bitcheese.net/lzms/

Если интересуют только slaxbuild’ы — посмотрите здесь: svn://svn.nonlogic.org/komar/slaxbuilds

16 комментариев

Filed under Без рубрики

Доводим live-usb до ума, часть 4: Синхронизация.

Очень удобно работать за чужим компьютером, если на нём есть копии своих данных. Если речь не идёт об их утечке, разумеется. А когда к любому компьютеру можно подцепить флешку, загрузить SLAX и работать свою работу как ни в чём не бывало, а потом ещё и перенести через ту же флешку наработанную работу к себе домой — то это вообще отпад. Как можно догадаться, для этого нужно регулярно синхронизировать данные между флеш-носителем и своим родным десктопом. О некоторых тонкостях этого дела я сейчас расскажу.

Для начала нужно решить, что мы будем синхронизировать. Это могут быть:

  • программы;
  • их настройки;
  • создаваемые нами самими данные.

Первый пункт выпадает сразу, потому что мы используем разные дистрибутивы. Если начать синхронизировать софт, то получится страшный бардак, в котором не будет работать ничего. Свои любимые программы надо установить на портативную систему самостоятельно, найдя хорошие модули или собрав их самому.

С настройками вроде бы всё понятно: если я отключил функцию варки кофя в emacs, то я хочу видеть эту функцию отключённой и на своей портативной системе! Синхронизируя конфигурационные файлы между системами, у меня будут одинаковые настройки и одинаковое поведение программ на обеих системах. Но и тут не всё ладно. Бестолково, например, синхронизировать файлы из каталога /etc, часть которых всё равно перезаписывается при каждом старте SLAX’а.

Также следует понимать, что на не все настройки мы хотим видеть одинаковыми. Запись логов в IRC-клиенте — очень полезная вещь на десктопе, но писать их на флеш-носитель неразумно: он имеет ограниченное количество циклов перезаписи и от такой эксплуатации накроется быстрее обычного. Ярлычки на панельке могут радовать глаза, но на портативной системе, где не окажется запускаемых ими программ, они окажутся совершенно бесполезными.

И так далее. Выбирайте то, что вам действительно нужно. Ещё лучше сначала посмотреть, без обновления каких настроек жить не мила, а потом уже отмечать нужное.

Копия наших рабочих данных на SLAX’е позволяет нам за любым компьютером скоротать время, занимаясь любимой работой. Пописать, покодить.

  • Собственно, большая часть статей была написана как раз в те моменты, когда за чужим компьютером было нечем заняться.

Тут просто помните об одном побочном эффекте. Наша флешка — не только переносная система, но и место для бекапа. Очень удобное и быстрое. Так что чем ценнее данные, тем нужнее они в списке на синхронизацию.

  • Только не забывайте, что вашу флешку — и все данные на ней — могут украсть. Шифрования мы пока ещё не прикрутили.

Главным инструментом для синхронизации будет Unison.

  • Unison — утилита для синхронизации файлов, написанная на языке OCaml. Она позволяет синхронизировать две копии файлов, на локальном компьютере или на двух разных хостах, обновляя каждую копию в зависимости от произведённых изменений.
    • Unison работает под Unix-подобными операционными системами и под Windows. Он также может работать с разными платформами одновременно, например, синхронизируя файлы между Windows-ноутбуком и Unix-сервером.
    • В отличие от простых утилит для создания зеркал и бекапов, Unison умеет работать с изменениями в обеих копиях файлов. Неконфликтующие изменения могут вноситься автоматически, конфликтующие определяются и отображаются для ручного разрешения.
    • Unison — не распределённая файловая система, а потому может работать без дополнительных модулей в ядре и прав суперпользователя.
    • Unison работает между любыми компьютерами, соединёнными между собой глобальной или локальной сетью, через сокет или зашифрованное соединение. Он аккуратно относится к ширине канала и прекрасно работает даже на медленных PPP-соединениях. Передача небольших изменений больших файлов оптимизируется протоколом, похожим на rsync.
    • Unison устойчив к сбоям, позволяет восстановить копии файлов после обрыва связи или некорретного завершения работы.
    • Unison имеет чистую, точную спецификацию, а исходный код Unison’а доступен по лицензии GPL.

Unison нам понадобиться главным образом на нашем десктопе, так что установите его с помощью своего любимого пакетного менеджера. Иногда он будет нужным и на флешке, поэтому скачайте мой lzm-модуль юнисона и поместите его в slax/modules.

  • Для любителей графических интерфейсов я специально не собрал GUI-версию unison’а — чтобы не выкабенивались и сами почувствовали удобство консольной версии.

Сначала надо научиться работать с этой штукой. Создайте где-нибудь две директории и напихайте в одну и в другую разных файлов. Затем наберите в командной строке unison и смотрите на вывод.

Нам будут показаны два столбика — для первой и для второй папки, справа от них — синхронизируемый файл, а так же срелки между двумя директориями. Где начало стрелки — папка, в которой было произведено изменение, а где конец — где его не было и куда нужно эти изменения внести. То есть файл как бы переносится из начала стрелки в конец. Если такая стрелка есть — значит, файл не конфликтует, и, если вы этого хотите, unison сделает действие по умолчанию. Для этого нужно нажать F. Если с действием по умолчанию вы по какой-то причине не согласны — нажмите на > или <, «поворачивая» стрелку в ту сторону, в которую вам нравится. Если вы не хотите ничего делать с этим файлом — поставьте / (слеш), и файл просто пропустится.

  • Ещё один немаловажный момент. Перед первым боевым запуском синхронизируйте и часовые пояса на обеих системах. Проще всего это сделать кликнув правой кнопкой по «часикам» в KDE. При определённых обстоятельствах это может привести к тому, что даты изменения файлов будут различаться на несколько часов.

Подробнее о юнисоне написано в документации на официальном сайте. Прочитайте, там всё не так страшно, как кажется. Здесь я лишь покажу, как получилось у меня.

  • Кстати, можно избавиться от многих проблем, связанных с различием логинов, сделав на SLAX’е символическую ссылку в /home на директорию /root. Например, /home/user -> /root

Я сделал файл ~/.unison/slax.prf следующего содержания:

#
# Paths for synchronization
#

# Unison :)
path = .unison/slax.prf

# Vim
path = .vimrc

# Bash
path = .bashrc

# KWallet
path = .kde/share/apps/kwallet/
path = .kde/share/config/kwalletrc

# SSH
path = .ssh/

# Kontact
path = .kde/share/config/kontactrc
path = .kde/share/config/kontact_summaryrc
path = .kde/share/apps/korganizer/
path = .kde/share/config/kaddressbookrc
path = .kde/share/apps/kabc/
path = .kde/share/apps/kontactsummary
path = .kde/share/config/kcmkmailsummaryrc
path = .kde/share/config/kcmkorgsummaryrc
path = .kde/share/config/kcmsdsummaryrc

# My signature for emails
path = .signature

# Basket
path = .kde/share/apps/basket
path = .kde/share/config/basketrc

# Konversation
path = .kde/share/apps/konversation
#path = .kde/share/config/konversationrc # Because log settings

# Konqueror
path = .kde/share/config/konquerorrc
path = .kde/share/apps/konqueror/bookmarks.xml
path = .kde/share/apps/konqueror/konqueror.rc
path = .kde/share/apps/konqueror/profiles/
path = .kde/share/apps/kcookiejar/cookies # Konqueror's cookies
path = .kde/share/config/khtmlrc # Konqueror's AdBlock

# Kopete
path = .kde/share/apps/kopete_cryptography
#path = .kde/share/apps/kopete_history
path = .kde/share/apps/kopete
#path = .kde/share/apps/kopete_statistics
path = .kde/share/config/kopeterc

# Konsole
path = .kde/share/config/konsolerc
path = .kde/share/config/konsolepartrc
path = .kde/share/apps/konsole/

# Yakuake
path = .kde/share/config/yakuakerc
path = .kde/share/apps/yakuake # always empty?

# KDE hotkeys
path = .kde/share/config/khotkeysrc

# KWin rules
path = .kde/share/config/kwinrulesrc

# Developers! Developers! Developers!
path = devel/

#
# Ignore paths
#

# Ignore sockets
ignore = Name *socket*

# Ignore cache
ignore = Path .kde/cache-*
ignore = Path .kde/share/apps/konqueror/faviconrc

# Kopete cache too
ignore = Path .kde/share/apps/kopete/jabber-capabilities-cache.xml
ignore = Path .kde/share/apps/kopete/jabberphotos
ignore = Path .kde/share/apps/kopete/oscarpictures

# Ignore temporary files
ignore = Name lock
ignore = Name *random_seed*
ignore = Name *.new
ignore = Name std.vcf__*

# Ignore SLAX specific files
ignore = Name .pxovl*

И добавил в /usr/local/bin/ на обоих системах два похожих, но разных скрипта.

/mnt/flash/slax/changes/usr/local/bin/slaxsync
#!/bin/sh
# Synchronization script for SLAX.
# Version for USB-Flash.
[ "$1" = "" ] && home="/mnt/hda2/home/komar/" || home=$1
unison slax \
$home \
/root/

/usr/local/bin/slaxsync
#!/bin/sh
# Synchronization script for SLAX.
# Version for home.
unison slax -perms 0 \ # Because I use FAT
$HOME \
/mnt/flash/slax/changes/root/

  • В директорию /usr/local/bin/ сам Бог велел класть самописные скрипты, так как она во многих дистрибутивах по умолчанию включена в $PATH, её не тронут пакетные менеджеры и её удобно бекапить.

У меня синхронизация занимает несколько секунд. Пробуйте.

3 комментария

Filed under Без рубрики

Доводим live-usb до ума, часть 3: Установка.

Ставим на flash-носитель. Раздел на нашей флешке можно сформатировать в любую файловую систему — хоть в FAT, хоть в Ext2, хоть в ReiserFS. Везде заработает. Никаких своп-разделов не нужно: если таковые имеются на жёстком диске, они будут подключены при загрузке системы.

  • Несмотря на то, что SLAX, используя хитрые костыли, нормально работает в FAT’е, я НЕ рекомендую устанавливать систему на FAT-раздел. Просто потому, что в этом случае:
    • возможны потери сохранённых данных в случае некорректного завершения работы;
    • права на файлы и папки, символические ссылки, а так же регистр символов в именах файлов и папок будут сохраняться необычным способом;
    • вы закалебаетесь чистить флешку от вирусов с Windows-машин.

    Кстати, я установил SLAX именно на FAT, и мне приходится терпеть все эти неудобства.

Итак, скачиваем последнюю версию дистрибутива в формате tar с ftp://slax.org/. Ещё лучше стянуть с торрента. Когда скачали — монтируем раздел на флешке в какую-либо директорию. У меня это /mnt/flash:
# mount /dev/sda1 /mnt/flash
Распаковываем скачанный архив в эту папку:
# tar xvf slax-*.tar -C /mnt/flash
Затем делаем этот раздел загрузочным. Для этого переходим в каталог boot/ на нашей флешке и запускам скрипт bootinst.sh:
# cd /mnt/flash/boot
# sh bootinst.sh

Всё. Можно перезагрузиться, настроить в BIOS’е загрузку с USB-Flash и пользоваться портативной системой.

Локализация

Вообще-то на официальном FTP-сервере есть всё необходимое для русификации. Но так как идущую по умолчанию локаль iso88595 мы в гробу видели, нам придётся идти другим путём.

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

Схема русификации несложная. Скачиваем два файла — модуль с локалями и загрузочный образ:

http://komar.bitcheese.net/lzms/russian-utf8/russian-utf8-6.0.7-i486-2.lzm
http://komar.bitcheese.net/lzms/russian-utf8/initrd.gz

Образ initrd.gz поместите в директорию boot/, модуль russian-utf8-6.0.7-i486-2.lzm — в slax/modules/. После перезапуска у вас будет полностью русифицированная система.

И не забудьте переключить кодировку в Konsole. Выбор кодировки — в меню.

Языки ввода

Пожалуйста, не надо ничего ковырять в xorg.conf. Он всё равно будет стёрт live-скриптами после перезагрузки. Прочитайте лучше моё руководство по переключению раскладок клавиатуры в KDE.

1 комментарий

Filed under Без рубрики