Установка многослотового картридера в Linux: card reader in Linux HOWTO



2 коммент.
Когда мне потребовалось читать и писать на многие виды флеш-карт, я пошёл на рынок и купил кардридер Transcend. Меня покорила его цена и гордая надпись на упаковке: Supported OSes - Windows, MacOS and Linux. Ну, думаю, дожил - производитель железа вспомнил о Пингвинах. И возрадовался. Преждевременно, как выяснилось потом...

Маленькие грабельки, которые могут больно ударить
Вонзаем USB-штепсель карт ридера в порт, втыкаем в карт ридер карточку и, затаив дыхание, ждём радостных сообщений dmesg. Если нам очень повезло и они появились - не спешите. Очень может быть, что обнаружен только первый слот card reader. На моём кардридере Transend это был MemoryStick, которого у меня не было никогда. На втыкание остальных карт он не реагировал. Почему?

Немного теории
Дело в том, что в Linux USB рассматривается как протокол "поверх SCSI" со всеми вытекающими последствиями. А именно: на одном шлейфе SCSI может висеть несколько устройств, которые общаются с системой независимо. Поддержка этой возможности (LUN - Logical Unit Numbers) в ядре есть, но она может быть выключена. Таким образом, для успешной работы многослотовых карт ридеров нужно, чтобы в ядре было включено:
---SCSI Support (CONFIG_SCSI, scsi.o)
---SCSI disk support (CONFIG_BLK_DEV_SD, sd_mod.o)
---SCSI generic support (CONFIG_CHR_DEV_SG, sg.o)
---Probe all LUNs on each SCSI device (CONFIG_SCSI_MULTI_LUN)
---Support for USB (CONFIG_USB, usb.o)
---Preliminary USB device file system (CONFIG_USB_DEVICEFS)
---USB ECHI HCD (CONFIG_USB_EHCI_HCD, usb-ehci-hcd.o), UHCI (CONFIG_USB_UHCI, usb-uhci.o), OHCI (CONFIG_USB_OHCI, usb-ohci.o)
---USB Mass Storage support (CONFIG_USB_STORAGE, usb-storage.o)
Выделенное красным полужирным шрифтом - обязательно включить, иначе будете видеть только первый слот. Эту одну маленькую опцию я искал неделю, но вам теперь будет легче.

Что делать?
1. Если ядро пересобирать не хочется/не можется/ не умеется, то делаем, как сказано здесь:

Дайте команду:
echo "scsi scsi-add-single-device    ">/proc/scsi/scsi

Например, для шестипортового кардридера:

root@localhost# echo "scsi add-single-device 1 0 0 5" > /proc/scsi/scsi
root@localhost# echo "scsi add-single-device 1 0 0 4" > /proc/scsi/scsi
root@localhost# echo "scsi add-single-device 1 0 0 3" > /proc/scsi/scsi
root@localhost# echo "scsi add-single-device 1 0 0 2" > /proc/scsi/scsi
root@localhost# echo "scsi add-single-device 1 0 0 1" > /proc/scsi/scsi
root@localhost# echo "scsi add-single-device 1 0 0 0" > /proc/scsi/scsi

2. Если ядро пересобрать - не проблема, то включаем там поддержку SCSI (как написано выше) с обязательной опцией Probe All SCSI LUNs. После этого картридер будет читать ваши флеш-карты во всех портах, а флешки будут видны как SCSI-диски, т.е. sda и партиции sda1 sda2 и так далее. Если руками монтировать лениво (и это правильно), пишем в /etc/fstab новую строчку:

/dev/sdc1 /mnt/sd vfat user,noauto,sync,noexec,nosuid,nodev,iocharset=koi8-r,codepage=866 0 0
Всё. После этого флеш-карты карт ридером воспринимаются и читаются/пишутся нормально. Не забываем отмонтировать флешки перед вытыканием :-)

Ссылки:
Кроме личных страданий, были использованы источники:
http://www.linux-sxs.org/hardware/flashreaders.html
http://www.cs.sfu.ca/%7Eggbaker/personal/cf-linux
http://hot-orange.narod.ru/chtivo/card-reader.htm
http://ru.wikibooks.org/wiki/LOR-FAQ-Hardware
http://www.ladoshki.com/?articles&id=139
Читать далее

Правильная установка Дебиан, In A True Debian Way



140 коммент.
Этот пост написан давно, но всё ещё актуален:
Автор заходил править этот пост 5 января 2013 года.

Как часто можно услышать: "да, я устанавливал Дебиан семь раз, но у меня ничего не получилось", "как в тёмной чаще, ничего не понятно", "сплошные мучения и заморочки" и прочее и прочее. Это всё потому, что Дебиан был установлен неправильно.

Дебиан это осознанный выбор, и если вы не хотите его делать, а хотите всё из коробки - вам не стоит устанавливать Debian. Есть много других дистрибутивов Linux на выбор, в которых всё сразу с бубенчиками и свистульками.

Ниже я постараюсь дать описание способа установки Debian, который должен привести к заведомо лучшему результату. Главное - решать проблемы по ходу их поступления, а не пытаться поставить всё и сразу.

Задача: требуется создать надёжную, стабильную, заточенную под себя рабочую среду на основе Debian GNU/Linux.

Решение: творчески переосмысливая изложенное ниже и согласуя со своими представлениями об удобстве и функциональности, получаем удобную и стабильную систему под управлением Debian GNU/Linux.


Вместо предисловия
Всё перечисленное ниже - моё личное частное мнение, которое помогло мне поставить Debian GNU/Linux и настроить его за минимальное время. Поэтому если уж вы решились следовать приведённым ниже советам - сначала читайте, а потом делайте.

Надеюсь, что вы хорошо подумали прежде, чем устанавливать Debian. Мой ответ на вопрос "почему Debian лучший (для меня) дистрибутив" можно прочитать здесь.

Дебиан - очень простой, понятный и удобный дистрибутив, но него есть свои отличительные черты, о которых нужно знать. Ставить систему надо один раз. Настраивать систему надо один раз. Потом - работать и получать от этого удовольствие. Переустановка системы есть глупость, это вам помогало в Windows. Здесь - не Windows, и через короткое время вы это очень хорошо почувствуете.

Последние пожелания, пока вы ещё находитесь в более знакомой вам операционной системе. Скачайте все ISO-образы (или в крайнем случае первый DVD) и не жадничайте болванок - пропалите все диски с Debian, ибо добавление их в систему позже будет намного проще. Не забудьте на всякий случай скопировать свои жизненно важные данные с жёсткого диска, на который вы будете устанавливать Linux.

Поехали!



Шаг 1. Установка Debian: особенности процесса установки
Итак, записали первый диск с Дебианом на болванку, вставили диск в CD/DVD привод, загрузились с CD/DVD диска. Нас приветствует первое окно - предлагает нажать Enter для продолжения или F1 для справки.


Подводный камень 1: несколько ядер
В комплекте дистрибутива Debian может быть несколько ядер для установки. Дебианщики - люди основательные и запасливые, а ещё большие перестраховщики, поэтому включают в комплект инсталлятора системы не одно, а несколько ядер. Мало ли - одно не запустится на вашей системе, или работать будет плохо. Всегда приятно иметь запасной парашют.

Итак, может быть несколько ядер на выбор. Поэтому внимательно читаем то, что нам предлагают разработчики дистрибутива перед тем, как нажать Enter.

С Debian v3.1 Sarge была такая ситуация: если вы просто нажимали Enter, то запускалось старое ядро 2.4.27, и ни SATA, ни PCI-Express не работало. Это было источником множества необоснованных упрёков со стороны новичков.Короче: перед нажатием Enter внимательно читаем прилагающуюся справку.

Затем обычно появляется окно с выбором языка. Если вы планируете работать с русским - выбирайте, соответственно, Русский. Как и регион, и раскладку лучше сразу выбирать ту, с которой будете работать, меньше потом придётся переделывать.
Инсталлятор проверит ваше железо и загрузит для него свои модули. Если ядро не сможет найти драйвера для контроллера жёсткого диска - установка прекратится, хотя это маловероятно.

Подводный камень 2: разбивка диска

Есть несколько вариантов:
1. Использовать максимальное свободное место. При этом вторая операционная система (если такая есть) затронута не будет, свободное место сократится и выделится Debian. При старте можно будет выбирать, что загружать.

2. Использовать весь диск. При этом всё, что есть на винчестере, будет уничтожено и туда будет поставлен Debian в гордом одиночестве.
Если на винчестере установлена другая ОС и хочется её сохранить, выбираем "Использовать максимальное свободное пространство". После этого и вторая ОС, и Debian будут загружаться, при старте можно будет выбрать требуемую систему.


Также могут спросить о схеме разбивки диска. Если вы ставите систему в первый раз и не знаете слов /home, /var и прочих заклинаний: выбирайте вариант по умолчанию "все файлы на одном разделе".


Будьте бдительны, желательно перед установкой сохранить данные в надёжном месте.

Несколько слов о том, что может предложить автоматика и что здесь можно поменять. Могут предложить снести весь диск и разбить его под Линукс, но можно и поменять разделы вручную.



Здесь есть тонкости следующего рода:

а) Swap-раздел
. В принципе, его можно и не использовать, а подключать и отключать по необходимости swap-файлы. Однако лучше swap-раздел всё-таки оставить и отдать под него места, равного половине объёма оперативной памяти.

б) Разные файловые системы
. Да, под Linux их много - есть из чего выбрать. Выбирать надо только журналируемые файловые системы, так как в случае отключения электропитания файловая система не потеряет целостности. Буквально два слова, чем файловые системы Linux друг от друга отличаются:
- Ext3: Надёжная и проверенная файловая система, оптимальный выбор в большинстве случаев.

- ReiserFS:
очень быстрая файловая система, особенно при работе с маленькими файлами. Идеальное решение для корневого раздела. Большие файлы копирует не быстро, но чтение/запись мелких файлов и поиск по файловой системе происходит очень быстро. Минус - грузит процессор, так что не для слабых машин.

- Xfs:
изначально создавалась под хранение файлов огромных размеров, поэтому быстро работает на архивах iso-образов дистрибутивов и фильмов, плюс хорошая работа с дисковыми квотами. Хорошо использовать для разделов, на которых предполагается хранить большие файлы (фильмы, iso-образы, архивы).

- Jfs:
в лучшем случае недалеко от Ext3 по скорости, но весьма стабильная и нетребовательна к ресурсам. Очень мало грузит процессор и идеальна на старых машинах и медленных ноутбуках.
После всех изменений не забудьте убедиться, что на основном разделе стоит метка "загрузочный", подтверждайте свой выбор и продолжайте установку.

Короче:
выбор файловой системы Ext3 для неискушенного пользователя наиболее оправдан.


Подводный камень 3: загрузчик
В Linux выбирать можно всё, даже загрузчик. Загрузчиков два на выбор - LiLo или GRUB. Если вы специально не попросите, поставится GRUB, так как он более функционален. Важно знать, что такая возможность выбора есть.

Короче: если особых соображений по поводу загрузчика нет - просто ставим по умолчанию GRUB.

Базовая система поставится, и попросит перезагрузиться. Вас спросят пароль рута - администратора системы, который будет ей управлять, ставить приложения и настраивать оборудование. Если машина домашняя, то администратором будете именно вы.
Внимание! Есть опасность того, что вы пожадничали место на диске и места может не хватить. Это обычно проявляется в том, что установка не доходит до конца и отправляет вас "по кругу".
Дальше инсталлятор спросит о простом пользователе, под которым вы будете работать. Вводим пароли, выбираем их не очевидными, чтобы враг не догадался. Под рутом постоянно сидеть и работать нельзя - только настраивать систему и очень осторожно, ни в коем случае не удаляя мимоходом какие-нибудь ссылки, каталоги или файлы.

Подводный камень 4: долгая первая загрузка
Первая загрузка может быть долгой - не паниковать и не вырубать питание ни в коем случае! Дистрибутивное ядро рассчитано на работу с любым поддерживаемым оборудованием, и на определение конфигурации вашей машины может уйти много времени. Диагностические сообщения быстро следуют друг за другом - это нормально (пока они не остановятся на словосочетании типа Kernel Panic, что маловероятно).

Короче: если первая загрузка длится долго (2-3 минуты) и на экране постоянно выдаются диагностические сообщения - это нормально.

Базовая система настроится и будет готова. Если сравнивать её с автомобилем, то это только остов, колёса и движок. Остальное мы будем подбирать под себя сами, думая о том, что мы хотим видеть в новой системе.

Подводный камень 5: автоматическая установка рабочего стола
Может запуститься менюшка с выбором того, чего вы хотите: сразу поставить "веб-сервер", "рабочий стол" или что ещё. Я считаю это самой большой идеологической диверсией в Debian GNU/Linux, хотя кто-то может со мной не согласиться.

Если вы не сможете устоять перед искушением и попросите поставить сразу "весь рабочий стол", то на вас могут свалиться сразу множество проблем: графическая оболочка может не подняться или подняться, но не так, поставится не та графическая среда, которую вы хотите и прочее. Кроме того, пакетная система из лучших побуждений поставит много программных пакетов, которые в будущем, быть может, придётся удалять.

Здесь кому что: если хотите ставить "всё сразу, а потом выгребать мусор" - ваше право. Но я предпочитаю решать проблемы по мере их поступления. Выбор за вами.


Короче: если вам предложат сразу поставить рабочий стол - подумайте, что вам удобнее: "ставить всё сразу, а потом разбираться и сносить часть поставленного" (вариант "поставить рабочий стол") или "делать всё самому и решать проблемы по мере их поступления" (вариант "только базовая система" и никаких "сразу поставить рабочий стол")


Шаг 2. Обживаем базовую систему
Базовую систему поставили, загрузились в неё, ввели логин и пароль, который назвали при установке. Нас поприветствовала голая консоль. Теперь понятно, что вы не в Windows? Это важный момент: забывайте свои дурные привычки и готовьтесь к тому, что придётся многое осваивать и понимать.

Здесь всё иначе, пока что непривычно и за один день вы всего не поймёте. В Windows вы тоже не за один день научились кнопки тыкать? Тут то же самое, только кнопок пока нет - лишь те, что на клавиатуре.

Это не страшно - скоро мы поднимем графическую оболочку и вы увидите, что многое в Linux правильнее, проще и лучше, чем в Windows. Дебиан нам друг, а не враг, и если что-то не получается, значит: а) вы делаете что-то не правильно, б) у вас нет на это прав. Так что сейчас начнём обживать базовую систему. Нам потребуются диски с софтом, которые шли с Дебианом.

Обозначения
Символ $ означает, что команды в консоли даются от простого пользователя - то есть, если у вас в консоли слева написано что-то вроде
beast@notebeast:~$
это значит, вы работаете от простого пользователя, которого зовут beast.

Символ # означает, что команды нужно давать от имени суперпользователя root. Суперпользователем можно стать, набрав команду su и введя пароль [при вводе он отображаться не будет], который вы задали при установке:
beast@notebeast:~$ su
Password:
notebeast:/home/beast#
На этапе установки и настройки рутовые привилегии будут часто нужны, но постоянно под рутом сидеть нельзя, это очень опасно.


Шаг 3. Монтирование файловых систем с репозиториями Debian
Хотя вопрос монтирования файловых систем в Linux уже описан, я приведу здесь краткие выдержки в стиле "куды лошадь запрягать". Прежде, чем что-то монтировать, надо уяснить вот что: мы подключаем раздел или диск в точку монтирования - это, грубо говоря, каталог, в который мы можем зайти и прочесть наши вожделенные файлы.

Но точка монтирования - это просто каталог, который надо предварительно создать. Точки монтирования следует создавать в каталогах /mnt или /media.

Пример: Для того, чтобы создать точку монтирования с названием
/mnt/windows в консоли даём команду:
$ sudo mkdir /mnt/windows
или
# mkdir
/mnt/windows
и даём каталогу права доступа для обычных пользователей:

$ sudo chmod 777 /mnt/windows
или
# chmod 777
/mnt/windows
Это позволит считывать и записывать данные не только суперпользователю (администратору), но и обычному пользователю. Свою точку монтирования в директории /mnt нужно создать для каждого раздела.После создания начинаем монтировать свои разделы в новую систему.


3.0 Как узнать, какие разделы можно смонтировать в Linux?
Чтобы посмотреть, что можно смонтировать, и увидеть информацию о разделах, можно воспользоваться командой:
# fdisk -l
Увидите что-то вроде:

Disk /dev/hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 36 289138+ 82 Linux swap / Solaris
/dev/hda2 * 37 7296 58315950 83 Linux
Здесь красным подсвечены разделы, которые можно смонтировать, и тип их файловых систем. Не бойтесь, если вы не знаете точно, как теперь называются ваши виндовые диски C:\ или D:\ и монтируйте разделы с указанием типа файловой системы fat или ntfs - если ошибётесь, раздел не примонтируется и вы увидите ошибку вроде

mount: wrong fs type, bad option, bad superblock on /dev/sda2,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
Не боимся - просто нам команда mount сказала, что примонтировать у неё не получилось.

Теперь вы знаете названия разделов в Linux/UNIX терминологии (об этом уже говорилось здесь), а как теперь узнать, какого типа файловая система на разделе? Запросто - используем команду file для этого
:
# file -s /dev/sda1
выдаст в ответ:
/dev/sda1: x86 boot sector, code offset 0x58, OEM-ID "MSWIN4.1", sectors/cluster 64, reserved sectors 126, Media descriptor 0xf8, heads 255, hidden sectors 63, sectors 284237982 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 34693, reserved3 0x800000, serial number 0x287d1dfa, unlabeled
Это говорит нам: на разделе /dev/sda1 имеется файловая система FAT.

3.1 Вариант: репозитории Debian / данные на разделе с файловой системой FAT
Сначала создаём точку монтирования для раздела, как описано выше в этом посте. Далее Например, мы создали точку монтирования /mnt/windows и чтобы примонтировать раздел, в консоли пишем:

$ sudo mount -t vfat /dev/sda1 /mnt/windows -o iocharset=utf8,codepage=866
или
# mount -t vfat
/dev/sda1 /mnt/windows -o iocharset=utf8,codepage=866
То есть монтируем раздел /dev/sda1 типа vfat в точку монтирования /mnt/windows
с кодировкой utf8 для отображения.


3.2 Вариант: данные на разделе с файловой системой NTFS
Доступ к закрытой и проприетарной файловой системе NTFS от Microsoft в Linux осуществляется драйвером NTFS-3g, который можно установить командой:
aptitude install ntfs-3g
Устанавливать драйвер придётся с внеших репозиториев или из DVD/CD дисков - вы ведь прожгли все ISO-образы на DVD-диски, не так ли?

После этого тип файловой системы при монтировании указываем как ntfs-3g:

$ sudo mount -t ntfs-3g /dev/sda1 /mnt/windows -o umask=0,nls=utf8
или
# mount -t ntfs-3g
/dev/sda1 /mnt/windows -o umask=0,nls=utf8
То есть монтируем раздел /dev/sda1 типа ntfs-3g в точку монтирования /mnt/windows Подчёркиваю, что подробнее о монтировании устройств в Linux можно прочитать в посте посте по ссылке.

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


Шаг 4. Подключаем репозитории Debian в систему

Тактика добавления репозиториев в систему разная в зависимости от того, где эти самые репозитории хранятся: в сети, на жёстком диске или в виде уже записанных CD/DVD-дисков. В любом случае, действия сводятся к редактированию системного конфигурационного файла /etc/apt/sources.list в котором хранятся данные о репозиториях. Это мы будем делать с помощью аскетичного редактора Nano:

Клавиатурные команды внизу помогут сориентироваться.

Вариант 4.1: репозитории доступны из Интернета
Это простой вариант и заморачиваться с монтированием и размонтированием не придётся. Сразу идём редактировать файл /etc/apt/sources.list с помощью nano:
# nano /etc/apt/sources.list
Редактируем от суперпользователя - это простой текстовый файл со строками вида:
#deb http://ftp.debian.org/debian/ wheezy contrib main non-free
deb http://ftp.debian.org/debian/ wheezy contrib main non-free
Структура такова:
  • Решётка слева # означает комментарий (строка с репозиторием обрабатываться не будет).
  • Фиолетовым выделен адрес, с которого будут закачиваться пакеты, в данном случае это http://ftp.debian.org/ и менять его не надо.
  • Далее идёт версия дистрибутива - она должна совпадать с той, которую вы только что установили: lenny, squeeze, wheezy или другое (должно быть написано на CD/DVD диске или в имени ISO-файла, например debian-lenny-i386-DVD-3.iso).
  • Последним идут типы репозиториев: contrib main non-free Совет здесь один - подключайте всё сразу.
Главное здесь не ошибиться в названии дистрибутива, остальные параметры будут одинаковыми для всех репозиториев.

Вариант 4.2: репозитории записаны на CD/DVD диски
В случае, когда репозитории уже записаны на CD или DVD диски - просто вставляем поочерёдно диск в привод и набираем в консоли команду:
# apt-cdrom add
и жмём Enter. Так поступаем для каждого диска с пакетами Debian.


Вариант 4.3: репозитории хранятся на разделе FAT/NTFS
Здесь всё немного посложнее, хотя никакого rocket science тут нет. На Шаге 3.1 или 3.2 мы уже примонтировали наши разделы с виндовым варёзом и репозиториями Debian в виде ISO файлов. Теперь нам нужно создать точки монтирования для ISO-файлов.
На всякий случай - для UNIX/Linux физический диск в CD-приводе и ISO-файл это одно и тоже. Подобный финт есть неотъемлемая часть мира UNIX и позволяет провернуть массу полезных трюков. Но это другая история.
Мы это уже проходили на Шаге 3, так что всё уже знакомо. Для ISO-файлов создадим точки монтирования вида /mnt/setup/disс-X где X является номером диска. В консоли даём команду:
$ sudo mkdir /mnt/setup/disс-1
или
# mkdir
/mnt/setup/disс-1
И так для каждого файла ISO. После того, как мы создали точки монтирования, приступаем к монтированию самих ISO-образов с репозиториями.
Допустим, что вы установили базовую систему с CD/DVD, но у вас только один диск, а репозитории в виде ISO-файлов хранятся на диске с NTFS. Возникает вопрос: как из базовой системы примонтировать DVD ISO-файлы с репозиториями Debian?

Например, файлы с репозиториями лежали в каталоге C:\debianlinux\debian-50r0-i386-DVD-1.iso Теперь же этот C:\ в Linux называется иначе, и мы ранее его примонтировали, скажем, к точке монтирования /mnt/windows Для того, чтобы примонтировать эти ISO-образы, нам нужно дать в данном примере такую команду от суперпользователя:
mount -t iso9660 /mnt/windows/debianlinux/debian-50r0-i386-DVD-1.iso /mnt/setup/disс-1 -o loop
Красным выделены параметры, остальная цветовая подсветка поясняет, как сконструировать полный путь до репозитория. Обращаю внимание горячих и нетерпеливых: слэши в Linux/UNIX отличаются от Windows и ставятся в другую сторону: /

Далее для всех остальных дисков всё тоже самое:
mount -t iso9660 /mnt/windows/debianlinux/debian-50r0-i386-DVD-2.iso /mnt/setup/disс-2 -o loopmount -t iso9660 /mnt/windows/debianlinux/debian-50r0-i386-DVD-3.iso /mnt/setup/disс-3 -o loop
.......
Далее идём редактировать файл /etc/apt/sources.list с помощью nano:
# nano /etc/apt/sources.list
Для ISO-образов формат файла несколько отличается от формата для сетевых репозиториев:
deb http://ftp.debian.org/debian/ lenny contrib main non-free <--- это для сетевого репозитория
deb file:///mnt/setup/disс-1 lenny contrib main non-free <--- это для ISO-репозитория
Структура такова:
  • Фиолетовым выделен полный путь, с которого будут закачиваться пакеты, в данном случае это file:///mnt/setup/disс-1 и нужно добавить строки с другими номерами дисков, например file:///mnt/setup/disс-2 и file:///mnt/setup/disс-3 Обращаю внимание - слэшей именно три. Так надо.
  • Далее идёт версия дистрибутива - она должна совпадать с той, которую вы только что установили: lenny, squeeze, wheezy или другое (должно быть написано на CD/DVD диске или в имени ISO-файла, например debian-lenny-i386-DVD-3.iso).
  • Последним идут типы репозиториев: contrib main non-free подключайте всё сразу.
Если вы прошли этот квест - поздравляю, вы сделали самое сложное.


Шаг 5. Добавляем репозитории Debian в систему для установки программ
После добавления всех дисков и репозиториев набираем:
# aptitude update
или
$ sudo aptitude update
Это приведёт к обновлению информации о доступных пакетах для системы. При этом в консоли будет выдаваться информация о ходе обновления вроде:

Получить:1 http://mirror.izhnet.org etch Release.gpg [189B]
Из кэша: http://mirror.izhnet.org etch Release
Ош http://mirror.izhnet.org etch Release

Получить:2 http://mirror.izhnet.org etch Release [1079B]
Игн http://mirror.izhnet.org etch Release
Игн http://mirror.izhnet.org etch/non-free Packages/DiffIndex
Из кэша: http://mirror.izhnet.org etch/non-free Packages
Получено 1268Б в 4s (292Б/с)
Чтение списков пакетов... Готово
W: GPG error: http://mirror.izhnet.org etch Release: Следующие подписи не могут быть проверены, так как недоступен общий ключ: NO_PUBKEY 033431536A423791
W: Вы можете запустить 'apt-get update' для исправления этих ошибок
На некоторые некритичные ошибки пока закрываем глаза и пробуем установить программы. Устанавливаем Midnight Commander и пробуем походить по директориям, как по кухне, выдвигая ящики и заглядывая на полочки, чтобы выяснить, что и где у нас лежит. Для установки набираем:
# aptitude install mc
и соглашаемся ставить всё, что для этого требуется. Выполнение указанной выше команды установки программ приведёт к тому, что система у вас спросит: к этой программе нужны дополнительные пакеты. Спросит, ставить их или нет? Отвечаем "Да", система будет скачивать нужные пакеты с диска/ISO образа/сети в зависимости от того, что вы указали как репозиторий пакетов. На всякий случай, указание репозитория в Дебиан производится в конфигурационном файле sources.list, который находится в каталоге /etc/apt.
Для особо любознательных, привожу пример своего конфига:
#deb file:///cdrom/ sarge main
deb file:///mnt/net/penta4rce/debiandisk1/ unstable contrib main
deb file:///mnt/net/penta4rce/debiandisk2/ unstable contrib main
#deb cdrom:[Debian GNU/Linux 3.1 r1 _Sarge_ - Official i386 Binary-2 (20051220)]/ unstable main
#deb cdrom:[Debian GNU/Linux 3.1 r1 _Sarge_ - Official i386 Binary-1 (20051220)]/ unstable contrib main
#deb http://download.videolan.org/pub/videolan/debian sid main
deb http://www.backports.org/debian/ sarge-backports main
deb http://security.debian.org/ stable/updates main contrib
#deb http://ftp.fi.debian.org/debian sarge main contrib non-free
#deb http://debian.scribus.net/debian/ stable main non-free contrib
Символы решётки в начале строки означают комментарий, и не принимаются во внимание пакетной системой. После изменения этих файлов необходимо обновить информацию о пакетах командой aptitude update от рута.

Больше об установке программ в Debian сказано в этом посте. После этого набираем в консоли:
mc
и мы увидим нечто вроде:
From Записки дебианщика

После этого можно немного побродить по файловой системе, ничего при этом стараясь не менять и не удалять.


5.1 Осваиваемся в новой системе
Далее хорошо бы сразу поставить нужные архиваторы, чтобы иметь возможность работы с архивами. Так же сразу ставим все нужные архиваторы:
# aptitude install zip unzip p7zip bzip2
Теперь у нас есть возможность работы со всеми архивами.

5.2 Debian GNU/Linux и русский язык в консоли 
Здесь всё довольно просто, для начала ставим пакеты:
aptitude install console-cyrillic console-terminus
Вам задают несколько вопросов по поводу того, какой язык вам нужен и в какой кодировке. Выбираем английскую и русскую локаль, ставим по умолчанию русскую. Сейчас прогрессивная молодёжь выбирает кодировку UTF8, так что стоит ориентироваться именно на неё. После этого всё происходящее в консоли будет на простом и понятном русском языке.

Если ничего не произошло или вы что-то сделали не так - всё можно настроить и поправить так:

dpkg-reconfigure locales
Это если вы забыли сгенерировать русскую локаль, а если нужно настроить шрифт или переключение раскладок - делаем:

dpkg-reconfigure console-cyrillic
или
dpkg-reconfigure console-setup
После перезагрузки всё будет русским, а пока даём команду cyr и всё. Ещё о русификации консоли можно прочитать здесь.


5.3 Несколько важных команд для управления софтом в Debian.Несколько слов о системе управления софтом в Дебиан (больше можно узнать отсюда).

Как установить пакет?
aptitude install пакет

Как удалить пакет?
aptitude remove пакет

А после удаления точно ничего от пакета не останется?
Для того, чтобы точно не осталось, используем aptitude purge пакет

Как обновить список пакетов?
aptitude update пройдет по всему списку указанному у Вас в /etc/apt/sources.list и обновит списки пакетов по всем репозиториям.

Как узнать как называется пакет для какой-то цели?
Поиск по ключевым словам при помощи apt-cache search ключевыеслова

Принесли компакт-диски дистрибутива, которых не было, как их добавить?
apt-cdrom add после чего сделать aptitude update

Как поставить один *.deb пакет в систему?
При условии того, что удовлетворены все зависимости dpkg -i имяфайлапакета

Как удалить один *.deb пакет из системы (возможно, поставленный в предыдущем пункте)?
Выполнить команду dpkg -r названиепакета




Напоследок: Выключаем Linux правильно.
Да, самое главное: как правильно выключить Linux? Для этого в консоли от рута даём команду:
# halt
Для перезагрузки соответственно
# reboot
В Linux нельзя просто так перезагружать систему кнопкой RESET: данные, находящиеся в файловом кэше, должны быть записаны на диск, иначе вы их потеряете. Впрочем, в Linux кнопка RESET не требуются так часто, как в Windows.


Что дальше?
Продолжая ставить программы и настраивать систему под себя, стараемся прежде всего создать комфортное для себя окружение.

Не надо сразу пытаться пересобирать ядро, ставить что-то из исходников и удалять "ненужные" системные файлы, ощутив мощь рутовых привилегий. Если же очень тянет на эксперименты с системой, лучше поставить эмулятор (типа qemu или virtualbox) и прочесть вот это.

Ставьте программы, изучайте их, обустраивайтесь, настраивайте оборудование (принтеры, сканеры, звук и прочее). В репозиториях Debian огромное количество приложений -  описанию программ для Linux посвящён отдельный пост.

В процессе освоения Linux вы многое поймёте и узнаете. Главное - не спешить сразу ломиться в цифровые джунгли.


Полезные статьи для дальнейшей настройки:
Читать далее

Установка MATLAB в Debian GNU/Linux



15 коммент.
Задача: надо поставить (не)честно (не)купленную (не)институтом систему численных математических расчётов MATLAB в Linux. В этом деле есть некоторые грабли, которые я постараюсь осветить.

Поставляется MATLAB на нескольких CD-дисках, и его инсталлятор, как указывается, способен работать на любых *никсах. Это, скорее всего, так и есть, потому что установочные скрипты писались с использованием стандартных средств типа cat, awk, sed и проч.
Читаем инструкцию по установке, заходим в каталог, где примонтирован диск/исо-образ и под рутом даём команду
# ./install
Если нам очень повезёт, то начнётся установка. Если установка плюётся ошибками, то перво-наперво проверяем, имеет ли наше устройство/исо-образ бит выполнения - если нет, даём права как минимум
# chmod 555 /где/устройство/накоторомматлаб
В Дебиане нам может не повезти ещё больше - у меня с MATLAB v7 и Debian v3.1 Sarge это выглядело так: в консольном режиме от имени root даётся команда:
# ./cdrom/install
что приводит к появлению сообщения
--------------------------------------------------------------------------------------------
Sorry! Could not determine the Format of the CDROM for architecture (glnx86)
--------------------------------------------------------------------------------------------
Можно пробовать запускать
# ./cdrom/install -t
в "терминальном режиме", но сообщение то же самое. Если запустить консольку из графического режима, то реакция будет другой:

Internal error 2: Could not determine the path of the
MATLAB root directory.

original command path = bash
current command path = bash

Please contact Mathworks Technical Support
for further assistance.

Установочный скрипт выругался, что не видит оболочки bash. Это, конечно, неправда, но как его убедить, чтобы он поставился? Этот золотой ключик мне сообщил замечательный человек - Игорь Чернявский, за что ему от меня земной поклон.

Так вот, если содержимое файла лицензии не позволяет вам обратиться в службу тех.поддержки, то попробуйте следующие действия (главное - выделено полужирно)
$ mkdir /usr/local/matlab7/
$ cp /media/cdrom/../license.txt /usr/local/matlab7/
$ cd /usr/local/matlab7/
$ sh /media/cdrom/install
Просто установщику нужно дать отдельную консоль. Опробовано в FedoraCore начиная с 3-ей версии и свежеустановленном Debian GNU/Linux v3.1 Sarge. Только после этого установщик начал ставить MATLAB, что происходит гладко и успешно.
Правда, на моём ноутбуке с точно таким же Саржем и с теми же манипуляциями установка в графическом режиме не пошла. Вылечил ключом -t и текстовым вариантом инсталляции.

Впечатления:
не знаю, у кого как, но в Дебиане графическая оболочка MATLAB работает отвратительно. Может быть потому, что у меня IceWM, но вылеты через раз после старта и крэш-дампы вёдрами меня, скажем так, не устраивают (обновлено: на новых вресиях, типа 2007b, графический интерфейс работает намного лучше). Поэтому чаще всего я запускаю MATLAB с ключом:
$ matlab -nojvm
что вырубает графическую морду и работает в терминальном режиме. Это гораздо лучше, быстрее и стабильнее. Кстати, не удивляйтесь, если некоторые скрипты будут отсутствовать в линуксовой версии - сейчас MathWorks интенсивно затачивает своё творение под мастдай, что на самом MATLAB отражается далеко не лучшим образом. Впрочем, к теме это уже не относится...

Лицензии и их срок действия
Грустно, когда срок лицензии на MATLAB у вас заканчивается. Тогда вы увидите что-то вроде этого при запуске или работе:

License checkout failed.
License Manager Error -10
Your license for MATLAB has expired.
Expire date: 11-nov-2011
If you are not using a trial license contact your License Administrator to obtain an updated
passcode.
Otherwise, contact your Sales Representative for a trial extension.

Troubleshoot this issue by visiting:
http://www.mathworks.com/support/lme10a

Diagnostic Information:
Feature: MATLAB
License path: /opt/matlab/etc/license.dat:/opt/matlab/etc/*.lic:
FLEXnet Licensing error: -10,32.
Severe:
The program '[10893] : Native' has exited with code 1 (0x1).
Впрочем, если отвести назад системные часы с помощью команды date, то всё заработает, как и раньше. Главное, не переключать часы во время работы матлаба, а то его лицензионному менеджеру это не нравится.

Пояснение:
MATLAB - это система численных математических расчётов, написанная на C и Фортране, имеющая простой интерпретируемый язык высокого уровня, на котором пишут скрипты/программы. Поставляется в виде интегрированной среды разработки, средств отладки и профилирования. Ядро системы закрыто, программа проприетарная, однако её расширения - простые текстовые скрипты - поставляются в открытом виде и реализуют базовые операции: работа с матрицами, БПФ, вейвлет-преобразование, работа с сигналами, статистические расчёты и проч. и проч. Так как скрипты открыты и их можно посмотреть и изменить для своих нужд, система MATLAB стала невероятно популярной и фактически стандартном де-факто в научном мире. Естественно, что MATLAB есть для всех платформ, а не только для Windows.

Есть ли альтернативы? Есть, но до уровня MATLAB они не дотягивают. Самая мощная из альтернативных систем - GNU/Octave, хорошо совместимая с MATLAB, но явно проигрывающая ей (хотя и приближающаяся) по функционалу. Остальные (Scilab, Yorik) отстают ещё больше на фоне MATLAB.
Читать далее

Встречи, поинты, собрания - и как всё это происходит



17 коммент.
Тема: некоторые мысли по поводу организации встреч людей, знакомых только по сетевому общению, на примере линукс-поинтов.

Вступление
Часто в блогах и форумах встречаются темы и посты о том, как хорошо было бы встретиться, пообщаться и поговорить. Много комментариев, постов, высказываний, меньше предложений и ещё меньше конкретики. Через некоторое время энтузиазм спадает, люди под разными предлогами отказываются от встреч - и вот вся благородная идея рассыпается в прах...
Унылая картина. И главное, никто не понимает, почему же так происходит?

Несколько слов и предложений
Как человек, уже в третий раз собирающий людей на встречу пользователей Юникс-систем, скажу несколько простых слов по этой теме. Может быть, эти слова помогут организаторам встреч - и может быть, этих встреч станет больше.
Организация встречи: как только вы предложили встретиться - вас сразу будут считать организатором. Нравится вам это или нет, но если хотите, чтобы встреча состоялась, придётся взять на себя некоторое количество неблагодарной работы, необходимой, тем не менее, для успеха предприятия. Никакие отговорки "я не буду этим заниматься" и "это не моё" ваши коллеги не примут: назвались груздем - полезайте в кузов.
Потребуется найти подходящее место встречи, определиться с устраивающих большинство участников временем проведения, цель встречи, взносы (только если вы не угощаете всех) и наконец, приблизительно выяснить количество желающих прийти.
Всё это должно подпитываться вашим энтузиазмом и твёрдой уверенностью в успехе мероприятия.
Состав и количество участников: сразу выясните, кто и как представляет себе будущее мероприятие, чтобы потом не было недопонимания. Если вы будете заставлять людей готовить серьёзные доклады, а они пришли просто попить пива - мне даже не хочется говорить, что из этого выйдет. Поэтому сразу лучше выяснить, сколько будет людей и чего же им хочется от встречи - просто и без обиняков.
Цели встречи: это может быть общение людей, знакомых только по сетевым сообщениям, обмен опытом, программами и вообще совместный отдых. Правильно расставленные акценты - и как бы сама собой образуется ненавязчивая и доверительная атмосфера встречи, в ходе которой люди обмениваются собственными впечатлениями, идеями и знаниями. В обстановке дружбы и доверия.
Место встречи: это самое главное - где в большом городе собрать людей, чтобы можно было бы мирно пообщаться, чего-нибудь съесть и выпить и при этом не иметь конфликтов с правоохранительными органами. Это не так просто, как может показаться. Может быть, участники предложат свои идеи, которые организатор взвесит, оценит и найдёт лучший вариант. В процессе этого вы виртуозно овладеете искусством компромиссов.
Время встречи: какое бы вы не выбрали - оно устроит не всех. Снова идём на компромисс с участниками и выбираем то время, которое удобно большинству собравшихся. Не забываем бодро отписываться об этом на форумах/блогах с тем, чтобы у сомневающихся возникло ощущение "неотвратимости" встречи - вроде всё идёт к тому, что это произойдёт, и во всех участников это вселяет оптимизм. Главное, чтобы организатор этот самый оптимизм не потерял.
Договорённости и координаты: как бы обыденно это не звучало - соберите контактную информацию участников. Желательно иметь мобильные/городские телефоны тех, кто придёт: в случае непредвиденных обстоятельств можно будет оперативно связаться.
Предложения по ходу: совсем не стоит упорно держаться намеченного плана - подстраивайте план под собравшихся, а не наоборот. Вносимые предложения в идеале озвучивают мысль собравшихся, мягко и ненавязчиво. Точно так же разруливаются начинающиеся жаркие споры, грозящие перейти в "религиозные войны" со всеми вытекающим последствиями. Так же неплохо бы прихватить с собой фотоаппарат, а ещё лучше - человека, сколько-нибудь в фотографии сведущего, чтобы по ходу развития мероприятия запечатлевать участников и всё то, что происходило.
После всего: опубликуйте, а ещё лучше опишите то, как прошла встреча. Мне кажется это очень важным моментом: те, кто постеснялся/не смог пойти на встречу, увидят и посмотрят репортаж с места событий и в следующий раз присоединятся к вам. Так же это будет интересно участникам собрания - всегда приятно посмотреть и почитать о том, как все вместе весело провели время.

"Суха теория, мой друг, но зеленеет жизни древо"
Чтобы разбавить конкретикой предыдущие абзацы, приведу несколько примеров.
В первую очередь, людей, которых вы собираете на встречу, должно что-то объединять: общие интересы, увлечения, знакомство по статьям и постам друг друга и прочее. Предложения "а не попить ли нам пивка", как правило, обречены на провал.
Людей не должно быть много - это не митинг, в конце концов. И не гонитесь за количеством участников: труднее организовывать на месте и направлять мероприятие.
Потом, никаких "докладов", "галстухов" и "шмокингов" - как правило, выглядит это вымученно, скучно и серо. Доклады друг друга вы прочитаете на форумах и блогах, а в личном общении, в неформальной обстановке, в каком-нибудь лесочке, под пиво и шашлычок можно узнать об интересующих вас темах гораздо больше. И впечатления останутся хорошие, и собраться ещё раз потом захочется.

Встреча пользователей юникс-систем - общий снимок

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

Ссылки:
Собственно, в качестве аргументов привожу репортажи в формате PDF с наших встреч пользователей Линукс и БСД-систем в Москве. За предоставленное место на хостинге огромное спасибо Сергею Ивановскому.
Второй линукс-поинт, 2006 год (PDF, 2.5Мб)
Третий линукс-поинт, 2006 год (PDF, 1.5Мб)
Четвёртый линукс-поинт, 2006 год (PDF, 2.5Мб)
Пятый линукс-поинт, 2006 год (PDF, 0.7Мб)
Шестой линукс-поинт, 2007 год (PDF, 1.3Мб)
Читать далее

Юмор: Tuborg Twist - пиво Дебианщика!?



13 коммент.
Подозрение: сдаётся мне, что в блоге слишком много серьёзности. Кто-нибудь подумает, что автор этих строк - ботаник. Что не соответствует действительности. Ну скажем так - не совсем :-)

Всё началось с того, что как-то раз я проходил мимо палатки своей автобусной остановки. Там всё, как всегда: напитки разной градусности и закуски к подобающим случаям.
- "А не взять ли пивка?" - говорит внутренний голос.
- "А почему бы и нет!?" - не возражает голос внешний.
И тут мой взгляд задерживается на бутылке с подозрительно знакомым символом.
- "Странно," - думаю. - "почему он кажется мне знакомым? Вроде Туборг, вроде ничего особенного... "
Внимательно присмотревшись, меня осенило. Ба, да на этикетке изображён логотип Дебиан! Вот тебе раз! Кто бы мог подумать. Пути маркетинга не исповедимы...
Купил пару бутылок - для надёжности и статистики, посмотрел, сравнил с оригиналом - не поленился и зашёл на www.debian.org. Смотрите сами:

Очень, очень большое сходство. Просто невероятное. Многие специфичные элементы дебиановской завитушки совпадают - смотрел до дегустации, во время и после.
На вкус, кстати, очень приличное пиво, понравилось. Особенно согревало душу, что "пью правильное, идеологически выдержанное пиво". ;-)  Надо будет сделать обои с этой темой...

Может, оптический обман? Если есть соображения на этот счёт - не поленитесь отписаться в комментариях.
Читать далее

Установка Kile в Debian GNU/Linux



8 коммент.
В этом посте мы быстро и просто поставили LaTeX, и даже сразу же им воспользовались, сделав PDF-файл из LaTeXовского документа. Просто и хорошо - но хотелось бы удобств, так как не всегда нужно работать в текстовом редакторе. Требуется интегрированная среда для разработки LaTeXовских документов, особенно если они большие по объёму. Для этого есть в Дебиане замечательная оболочка - Kile (KDE Integrated LaTeX Environment).

Установка: сейчас мы её быстренько поставим. Сама программа занимает всего около 6 Мб места:
# aptitude install kile
Вот оно и поставилось, по умолчанию интерфейс английский, но это не значит, что вы не сможете работать с русским - интерфейс программы, к самому LaTeX он отношения не имеет. Хотим Kile на другом языке - ставим ещё пакет локализации
# aptitude install kile-i18n
Запускаем Kile - штатными средствами своей графической оболочки. В общем случае просто в консольке пишем
$ kile
И вот она, в меру навороченная среда разработки документов LaTeX.

Если вы до этого ставили LaTeX по моему предыдущему посту, откройте теперь этот файл. Выглядит как в Kate, да? Ну ещё бы... Подсветка синтаксиса, автоматическое дополнение выражений, множество кодировок символов и прочие приятные мелочи.
Интерфейс Kile можно заточить под себя, в частности, убрать лишние панели и сделать его более лаконичным. Впрочем, это уже дело личного вкуса.

Раньше в Kile была оболочка к системе построения графиков GNUplot, но теперь, её, похоже, нет. Но это и не важно - например, здесь рассказано, как легко и просто строить навороченные научные графики в GNUplot при помощи простого текстового редактора.

Чтобы проверять орфографию прямо в Kile, надо поставить пакет ispell и в Settings -> Configure Kile -> Spelling выставить словарь для своего языка.

Кстати, если вы используете мой пример из другого поста и попытаетесь перегнать его кнопкой QuickBuild, программа уйдёт в задумчивость, вернуть из которой её можно большой красной кнопкой Stop. Закомментируйте строку \usepackage[pdflatex...]
нажав CTRL+D, когда курсор будет мигать на ней. Откомментировать строку можно CTRL+SHIFT+D.

Ну вот, теперь у вас есть не только сам LaTeX, но и удобная оболочка для работы. И всё бесплатно, и удобно, и в дистрибутиве - и никаких "приключений" с MiKTeX.

Kile - не единственная интегрированная оболочка LaTeX в Линукс. Есть ещё простой визуальный редактор LaTeX-файлов, который называется LyX, о чём можно прочесть там. Другой аналогичный Kile редактор, TeXmaker, был описан в этом посте. Выбор за вами.
Однако может быть, вы через некоторое время захотите работать с библиографическими списками - о замечательной программе JabRef сказано тут.
Читать далее

С днём рождения, Дебиан!



5 коммент.

Тринадцать лет назад появился этот замечательный дистрибутив - Debian GNU/Linux, которому и посвящён этот блог.
Единственный GNU/Linux, самый стабильный, самый свободный, самый продуманный, самый богатый софтом и с лучшей пакетной системой APT. Дебиан, мы тебя любим и ждём в декабре долгожданный Etch.
Спасибо Яну Мёрдоку и его супруге Дебре за их труды, мы их помним и любим. Так держать!
Читать далее

Быстро и просто устанавливаем LaTeX в Debian GNU/Linux



16 коммент.
Задача: требуется быстро и просто верстать научные статьи, дипломы, книги, монографии и вообще всё, что содержит много формул и графиков.
Решение: установка LaTeX в Debian GNU/Linux - минутное дело. В UNIX-системах пакеты для LaTeX называются tetex или texlive.

Для установки LaTeX в Linux следует установить пакеты (дистрибутив tetex):
#aptitude install tetex-bin tetex-extra latex-ucs
Если у вас Debian Lenny и старше, то скорее всего у вас будет дистрибутив texlive. Чтобы установить texlive в Linux пишем:
#aptitude install tex-common texlive-base texlive-base-bin texlive-common texlive-doc-base texlive-fonts-recommended texlive-lang-cyrillic texlive-latex-base texlive-latex-recommended
Для установки потребуется только первый dvd-диск. Пока ставятся пакеты - открываем свой любимый текстовый редактор и в нём пишем буквально следующее:
\documentclass[a4paper,12pt]{article}
\usepackage[T2A]{fontenc}
\usepackage[koi8-r]{inputenc}
\usepackage[russian,english]{babel}

\begin{document}
This is our first LaTeX document.
Это наш первый документ ЛаТеХ.
\end{document}
Набранное сохраняем под любым именем с расширением *.tex, например newlatexdoc.tex

Примечание: я использую локаль koi8-r, поэтому в строке

\usepackage[koi8-r]{inputenc}
стоит именно koi8-r.
Кто использует другую локаль, например utf8, поправьте по вкусу.

Далее в консоли (в той директории, где сохранили только что набранный файл) дать команду:
$ pdflatex newlatexdoc.tex
Среди нескольких служебных файлов появляется искомый newlatexdoc.pdf
Всё, вы уже стартовали в мир LaTeX.

Примечание: tetex в следующих версиях Debian может быть заменён на texlive.

Ссылки:
В блоге часто публикуются материалы по LaTeX в Linux, все они перечислены тут. Для изучения LaTeX вам понадобятся книги и справочники - они здесь. Дополнительные стили и прочие полезности - тут. Подробнее о разметке в LaTeX - сюда.
Читать далее

Строим научные графики с помощью GNUplot



29 коммент.
Задача: требуется строить научные графики, двухмерные и трёхмерные, с подписями на осях с греческими буквами - много и часто.
Решение: для этих целей давно и успешно применяется программа gnuplot, которую мы быстро поставим и освоим в Linux.


Введение
Стереотипы, вредные привычки и топорные, неэффективные решения чрезвычайно живучи. Одним из таких топорных решений является применение офисных средств при работе с научными документами. То, что это легко осваивается, вовсе не значит, что это будет удобно и просто. Сколько времени и сил у научных сотрудников уходит в песок - совершенно напрасно и бесцельно. Для того, чтобы эффективно работать в научной среде, необходимо дать себе за труд освоить соответствующие инструменты. Одним из них является LaTeX, другим -
gnuplot. О нём и пойдёт речь дальше.


Немного о gnuplot
Сначала его поставим - как всегда:
#apt-get install gnuplot
Если его теперь запустить, вызвав в консольке
$gnuplot
то он нас поприветствует примерно таким образом:

G N U P L O T
Version 4.0 patchlevel 0
last modified Thu Apr 15 14:44:22 CEST 2004
System: Linux 2.6.15.7

Copyright (C) 1986 - 1993, 1998, 2004
Thomas Williams, Colin Kelley and many others

This is gnuplot version 4.0. Please refer to the documentation
for command syntax changes. The old syntax will be accepted
throughout the 4.0 series, but all save files use the new syntax.

Type `help` to access the on-line reference manual.
The gnuplot FAQ is available from
http://www.gnuplot.info/faq/

Send comments and requests for help to

Send bugs, suggestions and mods to


Terminal type set to 'x11'
gnuplot>

То есть запустилась интерактивная часть программы. Здесь нам предлагают набирать команды и сразу видеть их результат - что не очень удобно, особенно если вы в первый раз работаете с
gnuplot.

Но у
gnuplot есть и другой режим работы - потоковый. На мой взгляд, для освоения и работы он более эффективен. Для того, чтобы быстро начать с ним работу и сразу посмотреть, на что он способен, мы построим небольшой, но показательный график. Всё, что нам потребуется - это ваш любимый текстовый редактор с подсветкой синтаксиса и немного терпения.

Приступим
В потоковом режиме работы
gnuplot воспринимает сразу все команды, которые вы ему пошлёте, и сразу строит график по данным из файла. В ряде случае это удобнее, а если требуется строить множество графиков, то потоковый режим работы GNUplot вас просто спасёт.

Итак, ниже я привожу разбор построения типичного графика, параметры которого записанного в виде скрипта, что выделено тёмно-красным цветом, а комментарии серым цветом. Пишите в файл строчки так, как они написаны здесь, без переносов и абзацев - это важно!

Создаём новый файл, называем, например, simple.graph и начинаем в него записывать команды
gnuplot. Признаком того, что файл относится к скрипту GNuplot, является первая строка в файле:
#! /usr/bin/gnuplot -persist
Далее выведем график в виде файла формата постскрипт (который можно скормить LaTeX)
set terminal postscript eps enhanced
задаётся имя выводимого файла с графиком, имя в кавычках
set output "~/RMSresearch.ps"
Ставим поддержку кириллицы, а то не увидим в подписях
set encoding koi8r
Устанавливаем метки по осям, размер и тип шрифта: сейчас по оси Х
set xlabel "Параметр регуляризациии {/Symbol a}, 10^{-n}" font "Helvetica,18"
Устанавливаем метки по осям, размер и тип шрифта: теперь по оси Y
set ylabel "Величина СКО, отн.ед" font "Helvetica,18"
Устанавливаем предел значений по оси Y
set yrange [0:1]
Задаём стиль линии (line1): сплошная прямая(lt - от linetype) с круглыми точками (pt - от pointstyle) типа 7
set style line 1 lt 1 pt 7
Теперь, задав все параметры, строим график, беря данные из файла RMSresult (для примера), где мы берём только второй столбец. Легенду для данных второго столбца называем СКО (среднеквадратичное отклонение) и заставляем строить график, используя тип линии, который мы задали.
plot "~/RMSresult" using 2 title "СКО" with linespoints linestyle 1

Осталось привести содержимое файла RMSresult - это просто поток чисел, разделённых пробелами (снятые параметры физического эксперимента):

1.0000000e-04 6.1881100e-01
1.0000000e-03 5.5289577e-01
1.0000000e-02 3.5527980e-01
1.0000000e-01 2.4352333e-01
1.0000000e+00 2.5852181e-01
1.0000000e+01 2.5291911e-01
1.0000000e+02 2.5109706e-01
1.0000000e+03 2.5524945e-01
1.0000000e+04 2.6013621e-01
1.0000000e+05 2.4596297e-01


Теперь, когда у нас есть всё необходимое для строительства графика, в командной строке пишем:
$ cat simple.graph | gnuplot
Всё, должен появиться график RMSresearch.ps, который можно просмотреть любым графическим редактором. Выглядеть он должен примерно так:



Ну вот, мы и построили первый график в
gnuplot. Причём, график довольно навороченный - с греческими буквами в подписи, правильно подписанными осями и прочим. Теперь людей, работающих в UNIX-системах не первый день, должно замкнуть: раз он воспринимает команды потоково - значит, можно gnuplot завернуть в скрипт и заставить штамповать графики массово? Да, естественно! И я даже скоро приведу пример Perlового скрипта, который это делает. Таким образом мной было построено 96 графиков за 3 секунды. Это ещё один пример CLI Magick...

Ссылки:
Конечно, я не смог в одном посте охватить безбрежные возможности gnuplot, да и не ставил себе таких целей. Тем не менее, в блоге есть и другие статьи по gnuplot:

Создание графиков в gnuplot метки, оси и подписи
Создание графиков в gnuplot: о легендах
Создание графиков в gnuplot: деления на осях
Создание графиков в gnuplot: двухмерные графики
Создание графиков в gnuplot: оформление двухмерных графиков
Создание графиков в gnuplot: пример построения графика


Англоязычные ресурсы:

Самым информативным ресурсом по
gnuplot является домашняя страница одного японца, которая называется gnuplot tips (not so Frequently Asked Questions) с английским вариантом. Информации там море, достаточно хорошо структурирована и главное - море примеров. Далее есть Gnuplot FAQ, в котором информация больше идеологического плана. Интересная страница "Visualize your data with gnuplot" на сайте IBM, где приводятся несколько показательных примеров использования gnuplot.

Русские ресурсы:
Кое-что есть и в нашем отечестве. Статья "Примеры построения графиков" подойдёт для начального ознакомления, а статья "GnuPlot нарисует график" подойдёт для более глубокого ознакомления.
Читать далее

Научные программы в Linux: обработка изображений



11 коммент.
В Linux очень комфортно чувствуют себя люди с исследовательской чертой в характере - поэтому он так распространён среди физиков, математиков, геологов, химиков и научных работников других специальностей. Не удивительно, что научных программ в Linux великое множество, и часть из них присутствует в Debian GNU/Linux.

Так как я занимаюсь цифровой оптикой, то больше знаю о программах для обработки изображений. Ниже приведён их список с комментариями, полужирное выделение - значит есть в Debian GNU/Linux.


Оформление научных статей: LaTeX (пакет tetex и шрифты к нему), оболочка Kile, LyX, TexMaker.
Если в тексте есть больше одной формулы или ссылки на литературу - следует использовать для этого специализированный инструмент, который создан и заточен специально для этого. Изобретать велосипеды с использованием "визуальных" редакторов - значит тратить свои нервы, ресурсы и силы понапрасну.
Ссылки: Описание установки ЛаТеХа, оболочек Kile, LyX, TexMaker. Пакеты расширений для ЛаТех.


Средство работы с библиографией
: BibTeX, Оболочка JabRef (есть пакет для Дебиана, программа под GPL, основана на Java – поэтому в дистрибутиве нет, но скачать вместе с Java-машиной можно).
Когда количество ваших литературных источников перевалит за полсотни, просто перечислять их в конце документа LaTeX будет утомительно, и, кроме того, трудно их выставить по порядку обращения.
Ссылки: Описание установки JabRef и работы с ним.


Численное моделирование: Octave или MATLAB for UNIX (для всех и Линукса в том числе). Программы, написанные в MATLAB, отчасти будут запускаться в Октаве, но... Октаву придётся долго доводить напильником неизвестной мне конфигурации. Как альтернатива - да, как рабочий инструмент - только если рядом есть знакомый октавист. Ссылки: Описание установки MATLAB.


Символьные расчёты: Maple for Linux или Maxima.
Иногда требуется символьно взять интеграл или найти производную. Для простых вещей есть своя голова, для более сложных - запрячь компьютер и MAXIMA. Maple поставить можно - есть линуксовая версия.


Построение графиков: GNUplot + писать для него скрипты на Perl/Bash.
Много программ я пересмотрел для построения графиков - и все они убоги, в том числе навороченные, но до ужаса неэффективные монстры типа Origin. Не так давно мне пришлось строить очень много графиков - сотню. Для разных результатов, с различными подписями по осям и греческими символами в заголовках. Час на написание и отладку Perlового скрипта и 5 секунд работы программы.
Ссылки: Построение научных графиков в GNUplot.


Создание нейросетей: Genesys.
Имитатор нейронных сетей общего назначения. Пока не использовал, но говорят о нём очень уважительно.


Графический редактор для огромных изображений:
nip2.
Специализированный профессиональный графический редактор для анализа огромных изображений. Таблично-ориентированный интерфейс, быстрые алгоритмы обработки изображений. Создавался для Национальной Галлереи в Лондоне.
Ссылки: О программе nip2 и её возможностях.


Поточная обработка изображений:
ImageMagick.
Это пример того, что называется CLI Magic. Нужно в огромном количестве изображений поднять гамму, повысить резкость и перевести в ч\б. ImageMagick и за полчаса написанный скрипт за минуту выполнит полугодовую работу.
Ссылки: Работа с ImageMagick - описание ключей для программы.

Другой интересный научный софт, которого в Дебиан нет, но можно скачать отдельно, можно найти на этом ресурсе.
Читать далее