дистрибутивы ОС MINIX 3 |
|
Метки: дистрибутивы ос minix 3 |
Ubuntu wine + Photoshop |
|
|
что где и подробности процесса загрузки linux |
| HP-UX | /sbin/init.d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| AIX | /etc/rc.d/init.d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Irix | /etc/init.d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Solaris | /etc/init.d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Redhat | /etc/rc.d/init.d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SUSE | /etc/rc.d/init.d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Debian | /etc/init.d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Slackware | /etc/rc.d | Расположение сценариев инициализации системы для различных версий UNIX
| HP-UX | /sbin/init.d | ||||||||||||||||||||||||||||||||||||||
| AIX | /etc/rc.d/init.d | ||||||||||||||||||||||||||||||||||||||
| Irix | /etc/init.d | ||||||||||||||||||||||||||||||||||||||
| Solaris | /etc/init.d | ||||||||||||||||||||||||||||||||||||||
| Redhat | /etc/rc.d/init.d | ||||||||||||||||||||||||||||||||||||||
| SUSE | /etc/rc.d/init.d | ||||||||||||||||||||||||||||||||||||||
| Debian | /etc/init.d | ||||||||||||||||||||||||||||||||||||||
| Slackware | /etc/rc.d |
|
Запуск системы определяется той аппаратной платформой, на которой выполняется начальная загрузка Linux. На встраиваемых платформах при включении питания системы или при перезагрузке используется bootstrap-среда. В качестве примеров можно привести U-Boot, RedBoot и MicroMonitor от компании Lucent. Эти программы хранятся в специальной области flash-памяти, расположенной во встраиваемой системе: они предоставляют средства для загрузки образа ядра Linux во flash-память и в дальнейшем обеспечивают выполнение этого ядра. В дополнение к функциям по хранению и загрузке образа Linux эти мониторы загрузки также выполняют тестирование системы на каком-то уровне и инициализацию аппаратного обеспечения. Во встраиваемых системах подобные мониторы загрузки обычно объединяют функции загрузчиков первой и второй ступени.
|
На персональных компьютерах загрузка Linux начинается в BIOS с адреса 0xFFFF0. Первым действием, которое выполняет BIOS, является тестирование при включении питания (POST, power-on self test). Задачей такого тестирования является выполнение проверки аппаратного обеспечения. Вторым действием POST является выполнение нумерации и инициализации для локальных устройств.
Если учитывать различное назначение функций BIOS, то можно считать, что BIOS состоит из двух частей: кода POST и сервисов времени выполнения. После завершения POST соответствующий код удаляется из памяти, однако сервисы времени выполнения BIOS остаются в памяти и доступны для операционной системы.
Для выполнения загрузки операционной системы сервисы времени выполнения BIOS выполняют поиск таких устройств, которые являются активными и способны выполнять загрузку – причем поиск выполняется в порядке, который определяется настройками, сохраненными в CMOS-памяти. В качестве загрузочных устройств могут выступать флоппи-диски, CD-ROM, разделы на жестком диске, подключенное к сети устройство или даже портативный USB-накопитель.
Обычно загрузка Linux производится с жесткого диска, на котором в MBR содержится первичный начальный загрузчик. MBR представляет собой сектор размером 512 байт, который располагается в первом секторе диска (сектор 1 цилиндра 0, головка 0). После того как MBR загружается в память, BIOS передает ему управление.
|
Первичный начальный загрузчик, хранящийся в MBR, представляет собой образ размером 512 байт, который содержит как программный код, так и небольшую таблицу разделов (см. рисунок 2). Первые 446 байт представляют собой собственно первичный загрузчик, который содержит как программный код, так и текст сообщений об ошибках. Следующие 64 байта представляют собой таблицу разделов, которая содержит запись для каждого из четырех разделов диска (по 16 байт каждая). В конце MBR располагаются два байта, которые носят название "магического числа" (0xAA55). Это магическое число служит для целей проверки MBR.

Задача первичного загрузчика - отыскать и загрузить вторичный загрузчик (загрузчик второй ступени). Он делает это, просматривая таблицу разделов в поиске активного раздела. Когда первичный загрузчик обнаруживает активный раздел, он просматривает оставшиеся разделы с целью убедиться, что они не являются активными. После завершения этой проверки с устройства в оперативную память считывается загрузочная запись активного раздела.
|
Вторичный загрузчик или загрузчик второй ступени было бы более логично назвать загрузчиком ядра. Его задачей на данной стадии является загрузка ядра Linux и, возможно, загрузка начального RAM-диска.
|
Загрузчики для среды x86, которые объединяют в себе загрузчики первой и второй стадии, носят название Linux Loader (LILO) или GRand Unified Bootloader (GRUB). Так как LILO имел некоторые недостатки, которые были исправлены в GRUB, то далее мы будем рассматривать именно GRUB. (Большое количество дополнительных ссылок на материалы по GRUB, LILO и связанным с ними темам содержится в разделе Ресурса в конце данной статьи.)
Одним из наибольших достоинств GRUB является то, что он способен понимать используемые в Linux файловые системы. Вместо того чтобы подобно LILO, обращаться непосредственно к секторам жесткого диска, загрузчик GRUB способен загружать ядро Linux с файловых систем ext2 или ext3. Это достигается благодаря превращению двухступенчатого загрузчика в трехступенчатый. Ступень 1 (MBR) загружает загрузчик 1.5-ступени, способный понимать файловую систему, в которой хранится образ ядра Linux. Примерами могут служитьreiserfs_stage1_5(для загрузки из файловой системы с журналированием Reiser) илиe2fs_stage1_5 (для загрузки из файловых систем ext2 или ext3). После того, как загрузчик 1.5 ступени загружен и выполняется, может быть загружен загрузчик 2-й ступени.
После загрузки 2 ступени GRUB способен по запросу показать список имеющихся ядер (которые определяются в /etc/grub.conf, с поддержкой мягких ссылок из/etc/grub/menu.lst и/etc/grub.conf). Вы можете выбрать нужное ядро и даже передать ему дополнительные параметры ядра. Также существует возможность воспользоваться оболочкой с поддержкой командной строки, что обеспечивает большую степень контроля над процессом загрузки.
После того как загрузчик второй стадии загружен в память, он обращается к файловой системе и выполняет загрузку в память установленного по умолчанию образа ядра и образаinitrd. Когда эти образы готовы к работе, загрузчик 2-й стадии вызывает образ ядра.
|
|
После того как образ ядра оказывается в памяти и ему передается управление от загрузчика 2-й ступени, наступает стадия ядра. Однако образ ядра не является исполняемым, это сжатый образ ядра. Обычно это zImage (сжатый образ размером менее 512KB) или bzImage (большой сжатый образ, размером более 512KB), который был сжат при помощи zlib. В начале такого образа ядра располагается программа, которая выполняет минимальную настройку аппаратного обеспечения и затем распаковывает ядро, хранящееся внутри образа ядра, и помещает его в верхнюю область памяти. Если имеется образ начального RAM-диска, то программа также перемещает его в память и помечает для дальнейшего использования, а затем вызывает само ядро, после чего начинается загрузка ядра.
При вызове bzImage (образ для i386) выполнение начинается в./arch/i386/boot/head.Sс ассемблерной функцииstart (основные этапы показаны на рисунке 3). Эта программа выполняет основную настройку аппаратного обеспечения и вызывает процедуруstartup_32, располагающуюся в ./arch/i386/boot/compressed/head.S. Процедура настраивает базовую среду (стек и т.п.) и очищает Block Started by Symbol (BSS). Затем выполняется декомпрессия ядра при помощи вызова C-функцииdecompress_kernel(которая хранится в ./arch/i386/boot/compressed/misc.c). После декомпрессии ядра в память происходит его вызов. Это еще одна функция startup_32, но она располагается в файле ./arch/i386/kernel/head.S.
В новой функцииstartup_32 (которая называется swapper или process 0) инициализируются таблицы страниц (page tables) и обеспечивается подключение функции memory paging (отображение страниц). Также определяется тип центрального процессора и сопроцессора для вычислений с плавающей точкой (FPU), если он имеется, и данная информация сохраняется для последующего использования. Далее вызывается функцияstart_kernelиз(init/main.c), которая осуществляет переход в ту часть ядра Linux, которая не зависит от особенностей конкретной аппаратной платформы. Можно сказать, что это функция main для ядра Linux.

При обращении к start_kernel вызывается длинный список функций инициализации, которые выполняют настройку прерываний, производят дальнейшее конфигурирование памяти и загружают начальный RAM-диск. После этого вызывается функция kernel_thread (изarch/i386/kernel/process.c), запускающая функциюinit, которая является первым процессом, выполняющимся в пространстве пользователя. В заключение запускается idle task, после чего управление может взять на себя планировщик (scheduler) (после вызова cpu_idle). Если разрешены прерывания, вытесняющий планировщик (pre-emptive scheduler) будет периодически перехватывать контроль для поддержки многозадачности.
В процессе загрузки ядра выполняется загрузка в оперативную память и монтирование начального RAM-диска (initrd), который был загружен в память загрузчиком 2-й ступени. Данныйinitrdслужит временной корневой файловой системой в оперативной памяти и позволяет ядру полностью загрузиться, не выполняя монтирование каких-то физических дисков. Так как модули, необходимые для взаимодействия с периферийными устройствами, могут являться частьюinitrd, то ядро получается очень компактным и тем не менее способно поддерживать самые разнообразные аппаратные конфигурации. После загрузки ядра корневая файловая система заменяется (при помощиpivot_root); при этом корневая файловая система initrd удаляется и монтируется действительная корневая файловая система.
|
Функция initrd позволяет создать компактное ядро Linux, где драйверы скомпилированы как загружаемые модули. Эти загружаемые модули обеспечивают доступ ядра к дискам и файловым системам, которые имеются на этих дисках. Также имеются драйверы для других аппаратных устройств. Так как корневая файловая система представляет собой файловую систему на диске, то функция initrd обеспечивает для загрузчика возможность обратиться к диску и смонтировать действительную корневую файловую систему. Во встраиваемой системе без жесткого диска initrd может представлять собой окончательную файловую систему, или же окончательная файловая система может монтироваться при помощи сетевой файловой системы (Network File System, NFS).
|
После загрузки и инициализации ядра запускается первое приложение в пространстве пользователя. Это первая из вызываемых программ, которые скомпилированы со стандартной библиотекой C. До этого момента процесса стандартные C-приложения еще не выполнялись.
На обычных настольных системах с операционной системой Linux обычно первым запускаемым приложением является/sbin/init. Однако это обязательно. Во встраиваемых системах редко требуется такая обширная инициализация, которую обеспечиваетinit(которая конфигурируется при помощи /etc/inittab). Во многих случаях можно запустить простой shell-скрипт, который запускает необходимые встраиваемые приложения.
|
Как и сама операционная система Linux, процесс загрузки ядра является чрезвычайно гибким и универсальным и поддерживает большое количество процессоров и аппаратных платформ. В самом начале загрузчик loadlin обеспечивал простой способ загрузки Linux без поддержки каких-либо необязательных аксессуаров. Загрузчик LILO расширил круг поддерживаемых функций, однако его недостатком являлось отсутствие поддержки файловых систем. Последнее поколение загрузчиков, таких как GRUB, позволяет загружать Linux с самых различных файловых систем (начиная с Minix и заканчивая Reiser).
|
Метки: подробности процесса загрузки linux |
Custom Debian Distributions (CDD) : Промышленная платформа для создания специализиро |
Статья представляет собой обзор архитектуры и методов применения
инфраструктуры проекта Debian в коммерческих и свободных разработках.
Посвящена построению сред инсталяции, изменению поведения инсталятора,
распределённой установке, сборке LiveCD, добавлению стороннего ПО.
Статья, представленная вашему вниманию, посвящена построению сред инсталяции, изменению поведения инсталятора, распределјнным возможностям установки, сборке LiveCD, добавлению стороннего ПО, используя гибкую архитектуру Debian GNU/Linux.
Первоначально представлена в виде доклада на 4й международной конференции разработчиков и пользователей свободного программного обеспечения Linux Vacation Eastern Europe'2008 (LVEE-2008) 28 июня 2008 года, Гродно, Беларусь.
Позже был дополнен новой информацией о работах компании Promwad в области использования Debian-based дистрибутивов.
Все описанные проекты-примеры являются реальными заказами, выполненые автором в период c 2007 по 2008 год в сфере Outsourcing Software Development.
|
Что такое Custom Debian Distribution
Debian GNU/Linux -Операционная система, содержащая более 18000 программных пакетов различного назначения.
Custom Debian Distribution или CDD является подмножеством Debian, призванный быть инструментом для специальных групп пользователей, сконфигурированный таким образом, чтобы предоставлять специальный функционал "из коробки"
1.
Debian GNU/Linux включает в себя пакетную систему DEB
3+APT
4 и инсталлятор промышленного уровня D-I, позволяющий гибко управлять составом устанавливаемого программного обеспечения, ходом инсталяции и вводить, при необходимости, новый функционал.
|
Архитектура и реализация инсталлятора Debian (D-I)
Debian Installer (далее D-I) представляет собой специальную версию дистрибутива Debian, выполняющую задачи начального развјртывания операционной системы на устройстве (устройствах) пользователя.
При проектировании D-I разработчики должны были учитывать следующие условия:
Мы можем утверждать, что ни один другой инсталятор ОС, как свободно распространяемый, так и коммерческий, не удовлетворяет указанным выше требованиям.
Таблица 1 наглядно иллюстрирует отличия между методами. Содержит список компонент (udebs), вовлечјнных в первую и вторую стадию для методов установки с CD-ROM и через сетевую загрузку.
Table 1: Компоненты 1, 2, 3 стадии инсталяции
Стадия | CD-ROM | NETBOOT | Комментарии |
- | initrd-preseed | Только если есть /preseed.cfg | |
1 | localechooser | Выбор языка/страны/локализации | |
1 | kbd-chooser | Выбор клавиатуры | |
1 | cdrom-detect | eth-detect | Определение железа и настройка |
1 |
| netcfg | Конфигурирование сети |
- | _le-preseed | network-preseed | Если выбран при загрузке |
2 |
| choose-mirror | Выбрать зеркало-источник установки |
2 | load-cdrom | download-installer | Получить и распаковать дополнительные компоненты |
3 | eth-detect |
| Определение железа и настройка |
3 | netcfg |
| Конфигурирование сети |
3 | choose-mirror |
| Выбор зеркала-источника установки |
Как можно убедиться, первые три стадии имеют фундаментальные различия при выборе различных методов инсталяции. Все компоненты (udebs), указанные для стадий 1-3, должны быть включены в initrd, c которым происходит загрузка инсталлятора.
Оставшаяся часть инсталяции в основном общая для всех методов инсталяции (cм. таблицу 2).
Table 2: Компоненты 4 и 5 фаз инсталяции
Стадия | Компоненты | Комментарии |
4 | hw-detect | Дополнительное определение железа |
4 | partman | Разметка дисков, создание файловых систем и выбор точек монтирования |
5 | tzsetup | Выбор часового пояса |
5 | clock-setup | Выбор локального часового пояса или установка UTC |
5 | user-setup | Настройка аккаунта root и обычных пользователей |
5 | base-installer | Установка базовой системы (debootstrap2 ) и установка ядра |
5 | apt-setup | Настройка APT для целевой системы (sources.list) |
5 | pkgsel | Выбор и установить дополнительные пакеты (tasksel) |
5 | grub/lilo-installer; nobootloader | Установка загрузчика |
5 | _nish-install | Окончание инсталяции и перезагрузка |
D-I поддерживает большое количество разнообразных методов инсталяции. В некоторых случаях они могут комбинироваться. Определение инсталяционного метода базируется на следующих вопросах:
Для наиболее употребительных методов инсталяции ответы на эти вопросы даст таблица 3.
Table 3: Методы инсталяции и способы загрузки частей инсталятора
Метод | Загрузка | Udebs | Базовая система | Tasks |
netboot | сетевая загрузка (TFTP сервер) | сеть | сеть | сеть |
mini.iso | CD-ROM | сеть | сеть | сеть |
businesscard CD | CD-ROM | CD-ROM | сеть | сеть |
netinst CD | CD-ROM | CD-ROM | CD-ROM | сеть |
полный CD/DVD | CD-ROM | CD-ROM | CD-ROM | CD-ROM (+сеть) |
hd-media | винчестер/usb флэш | CD образ | CD образ/сеть | CD образ/сеть |
_oppy (net) | boot/root/net-drivers | сеть | сеть | сеть |
_oppy (cd) | boot/root/net-drivers | CD-ROM | CD-ROM/сеть | CD-ROM/сеть |
|
udeb (или микро-deb) является специальным типом пакета Debian. Основное отличие от обычного пакета -отход от значительного количества требований Debian Policy
7. Например udeb не содержит changelog, лицензию, документацию (в частности man-страницы) или md5-сумму. Причина -необходимость минимизировать размер, так как инсталяция проходит целиком в RAM, а раздел подкачки может быть доступен только после Фазы 4 (разметки разделов).
Дополнительноое отличие -udebs не поддерживают деинсталяцию и обновление. Несоответствие Policy обозначает то, что udeb'ы бессмысленно ставить на обычную систему, есть возможность сломать зависимости и переписать существенные для нормального функционирования файлы.
Для разработчика, знакомого ( начинающие могут ознакомится с
8 ) с процессом создания пакетов Debian, создание udeb не составит никаких сложностей. Требуется помнить о размере и стараться поддерживать размер пакета минимальным.
Далее на примерах будут показаны отличия udeb от стандартного пакетирования Debian.
Конфигурационный файл debian/control
Пример типичного debian/control (c сокращениями):
|
В первую очередь обратите внимание на Section: debian-installer и XC-Package-Type: udeb. Тип пакета udeb и секция debian-installer явным образом указывают сборочной системе debhelper
9 собирать udeb (а не обычный пакет).
Поле XB-Installer-Menu-Item регулирует порядок включения в процесс установки. Например, если мы укажем номер меню больший, чем у пакета finish-install, то наш пакет не выполнится по умолчанию (не будет запущен debian/postinst ).
Вы также можете смешивать объявления deb и udeb в одном файле (пакет util-linux, пример дан с сокращениями):
|
debian/postinst выполняется согласно номеру меню и обычно включает большую часть функционала, реализуемого компонентом udeb.
debian-installer/<component>/title |
Шаблон для debconf
5. Включает в себя описание пункта для меню:
debian-installer/<component>/title |
Может также включать дополнительные записи, предназначенные для хранения настроек и сообщений.
|
Для части компонент D-I возможно добавление функциональности без изменения кода.
В настоящий момент поддерживается следующий набор "хуков" общего назначения:
Существуют специализированные хуки apt-setup, main-menu и rescue, с которыми вы можете ознакомится в документации на D-I.
Также к хукам можно отнести команды preseed (см. пункт 4.2)
, выполняющие аналогичную роль.
d-i preseed/early_command и d-i preseed/early_command
|
Нетривиальное применение D-I и CDD
Типовые задачи, решаемые созданием CDD:
Рассмотрим их подробнее.
Существуют два инструмента для создания инсталяционных образов:
debian-cd
11 :
simple-cdd
12 :
Simple-cdd является надстройкой над debian-cd
Preseed : задание настроек инсталяции
Для управлением настройками в D-I и пакетной системе Debian используется debconf
5.
preseed
10 -текстовый файл с ответами на вопросы debconf и имеет следующий вид:
|
Имя preseed-файла передајтся как параметр при загрузке ядра, может быть локальным или URL. Примеры для различных типов инсталяции:
|
Параметры preseed могут быть заданы как вручную (из приглашения загрузчика), так и используя DHCP.
Особо следует отметить специальный язык описания разделов для утилиты разметки дисков partman:
d-i partman-auto/expert_recipe strin \ |
В preseed-файл также могут включаться ответы на вопросы устанавливаемых приложений. К примеру OEM инсталяция может подразумевать начальное конфигурирование сервера samba или автоматический ответ "да" на вопрос о принятии лицении Sun Java JRE.
LiveCD в стиле Debian -live-helper
Пакет live-helper (включён в состав Debian начиная с Lenny )
13 предназначен для создания LiveCD на базе Debian. Возможности:
Проект хорошо документирован и быстро развивается
|
Примеры проектов с использованием CDD
В заключительной части статьи будут предоставлены примеры выполненных проектов, реализованных с помощью технологий Custom Debian Distribution. Основной упор сделан на то, каким образом решались задачи, обусловленные техническим заданием. Приводятся выдержки из конфигурационных и сборочных файлов, с разбором наиболее существенных фрагментов.
OEM-поставка. Многоформатный неинтерактивный плейер для видеоэкрана
Техническое задание:
Реализация:
auto_profiles="miu" |
Что модифицировано:
miu.packages (список пакетов)
openssh-server |
Запрашиваем установку нестандартного ядра и openssh-сервера по умолчанию + устанавливаем 3rd-party пакеты собственной разработки.
miu.preseed (выборочно):
|
изменения:
Обёртка над сборкой debian пакетов и iso-образа -Make_le
|
Техническое задание
Проект реализован с помощью Live-helper
13. Были внесены некоторые изменения в конфигурацию по умолчанию.
LH_BINARY_IMAGES="iso" |
Задан загрузчик и дополнительные параметры к загрузке, и тип образа.
LH_CHROOT_FILESYSTEM="squashfs" |
Заданы пакет с ядром и дополнительные пакеты, требуемые для работы live-cd. В частности ftp-сервер для закачки контента, mc (mcedit) для управления файлами и редактирования конфигурации.
deb http://mend0za.xyz.com/debian-aw-display/ ./ |
Сборка реализована как набор правил, включенных в общий Makefile проекта 5.1.
livecd-repo: $(BUILD_DIR)/$(PLAYER_PACKAGE) $(BUILD_DIR)/$(SWFDEC_PACKAGE) |
Отдельно следует отметить скорость создания LiveCD на основе уже имеющейся инфраструктуры CDD. Используя готовые схемы сборки 3rd-party пакетов deb и CDD (через simple-cdd), дополнительные правила для сборки LiveCD созданы и отлажены за 3 человеко-дня, включая стадию контроля качества (QA) и передачу результата работы (ISOобраза) заказчику.
Распределённая установка с контролем оператором
Техническое задание:
Реализация:
Сценарий установки устройства-клиента:
Как можно видеть, реализация требует плотной интеграции целой группы стандартных компонент (Web сервера, TFTP сервера, DHCP сервера, D-I) с группой самостоятельно разработанных компонент (управляющее ПО оператора, хранилище информации о состоянии устройств, репозитории пакетов для двух раздельных дистрибутивов, udeb, модифирующий поведение D-I).
Было создано 3 новых пакета-интегратора: netboot-server, miu-netinstall, management-server, реализующие функционал, необходимый по техническому заданию.
Обычный deb-пакет. Устанавливается на сервер.
subnet 172.17.0.0 netmask 255.255.0.0 { |
Логика построена в зависимости от идентификатора вендора. Если
сетевые настройки запрашиваются уже запущенным D-I, отдајтся
URL файла preseed. В противном случае осуществляется обычная
сетевая загрузка PXE.
|
Благодаря гибкой схеме конфигурирования Apache 2.x в Debian настройки оформлены отдельным файлом, укладываемый в
/etc/apache2/conf.d |
Компонент udeb для d-i. Загружается в устройство при инсталяции через preseed:
d-i preseed/early_command string anna-install miu-netinstall |
postinstall для этого пакета реализует запрос на разрешение/запрет дальнейшей установки устройства + определение адреса сервера. Содержит также хуки, производящие информирование сервера о стадиях инсталяции и возможности продолжать.
Содержит ПО пријма запросов от устанавливаемых устройств и ПО оператора. Устанавливается на сервер.
Серверный дистрибутив собирается через simple-cdd, так же как и дистрибутив из проекта 5.1. Клиентский дистрибутив фактически содержится в серверном как подмножество пакетов в репозитории CD диска. После инсталяции серверного дистрибутива репозиторий с диска копируется инсталятором на установленную машину и служит пакетной базой для установки клиентских устройств.
Network Attached Storage
14 (NAS) для i386
Портирование существующего продукта с Alt Linux/XScale на Debian/i386.
Техническое задание:
Реализация.
Отличие от проектов, указанных выше (см. 5.1, 5.2, 5.3) -в необходимости глубокой интеграции с Debian-Installer, вплоть до модификации штатного ядра и замены штатного менеджера дисков.
Функционал продукта полностью базируется на использовании EVMS. Все операции с дисковой подсистемой проводятся через Device Mapper
16 + EVMS. D-I на момент начала работы над проектом содержал только рудиментарные признаки поддержки EVMS, ранее не используемые и исключјнные из релизов незадолго до выхода Sarge.
Детали реализации:
Наиболее интересны, с точки зрения CDD, следующие фрагменты:
partman-evms/debian/control
Package: partman-evms |
XB-Installer-Menu-Item задајт место для запуска partman -непосредственно перед оригинальным partman (4000). Имена пакетов и поля Provides: полностью замещают стандартный компонент, эмулируя его привязку к остальным частям инсталятора. См.
17 для получения дополнительной информации.
partman-evms/debian/postinst содержит код переразбиения дисков согласно штатной разметки NAS как группы RAID-1 разделов на всех существующих дисках. Также осуществляются действия стандартного partman: форматирование разделов, создание /etc/fstab, подключение свопа.
Вся дальнейшая установка (базовая система, пост-инсталяционные настройки) уже работает с корневым разделом под управлением EVMS.
Часть из используемых пакетов проекта требует ответов пользователя по ходу их установки. Средствами добавления preseed в simple-cdd мы можем заранее задать ответы на них и сохранить инсталяцию "молчаливой":
# omit questions to user |
|
1 Custom Debian Distribution homepage http://cdd.alioth.debian.org
2 Frans Pop Debian Installer Internals, 2006 http://d-i.alioth.debian.org/doc/talks/debconf6/paper/
3 Debian package control basics http://www.debian.org/doc/FAQ/ch-pkg_basics
4 APT Howto http://www.debian.org/doc/manuals/apt-howto/
5 debconf WiKi http://wiki.debian.org/debconf
6 BusyBox project http://busybox.net/
7 Debian Policy http://www.debian.org/doc/debian-policy/
8 Debian New Maintainers' Guide http://www.debian.org/doc/maint-guide/
9 Debhelper homesite http://kitenet.net/~joey/code/debhelper/
10 Automating the installation using preseeding http://d-i.alioth.debian.org/manual/en.i386/apb.html
11 debian-cd package http://packages.debian.org/etch/debian-cd
12 simple-cdd package simple-cdd package http://wiki.debian.org/Simple-CDD
13 Debian Live Debian Live http://debian-live.alioth.debian.org/
14 Network Attached Storage http://en.wikipedia.org/wiki/Network-attached_storage
15 Enterprise Volume Management System http://evms.sourceforge.net/
16 Device Mapper http://sources.redhat.com/dm/
17Replacement of partman D-I component http://lists.debian.org/debian-boot/2008/02/msg00819.html
18 Debian-Installer: Building images with a custom kernel http://wiki.debian.org/DebianInstaller/Modify/CustomKernel
Шахов Владимир aka mend0za, Senior Software Engineer в Promwad Innovation company. Системный аналитик и разработчик ПО, преподаватель, FOSS-евангелист. | ||
|
|
Informix и PHP |
Узнайте, как установить, настроить и протестировать сервер под управлением Linux®, Apache®, Informix® и PHP (LAIP). Эти приложения предоставляют в ваше распоряжение мощный набор средств для поддержки Web-сервера.
В этой статье предполагается, что вы используете 32-разрядную систему Linux на основе менеджера пакетов RPM. Все процедуры, представленные в этом руководстве, выполнялись в ОС Red Hat Enterprise Linux 4 и SUSE Linux 9. Тем не менее общая концепция может использоваться и при работе с другими дистрибутивами Linux.
Прежде всего вам понадобятся Informix Dynamic Server и набор разработчика Informix Software Development Kit. Если у вас нет этих продуктов, вы можете найти их на странице
семейства продуктов Informix.
В большинстве дистрибутивов Linux некоторые или все компоненты LAIP уже установлены. Как правило, они не устанавливаются из исходных файлов, и поэтому могут не содержать нужных скомпилированных расширений. Чтобы удалить эти компоненты, не столкнувшись с проблемами менеджера RPM, необходимо войти в систему под учетной записью root:
su - root |
Затем вы можете просмотреть все пакеты, установленные в вашей системе:
rpm -qa | grep -i apache |
После этого вы можете удалить все пакеты, найденные в результате выполнения предыдущих команд:
rpm -e filename |
На этом этапе вы должны получить "чистый" дистрибутив Linux, готовый для установки и настройки компонентов.
|
Получение и распаковка файлов исходного кода для всех приложений
cd /usr/local/src |
wget http://www.php.net/distributions/php-5.1.2.tar.gz |
В нашей установке использовались следующие версии продуктов LAIP:
| PHP | 5.1.2 |
| HTTP-сервер Apache | 2.2.0 |
| Informix Dynamic Server (IDS) | 10.00.UC4 |
| Informix Client Software Development Kit (Client SDK) | 2.90.UC4 |
| Informix PHP Data Objects (PDO) | 1.0.0 |
Для корректной работы других версий этих продуктов могут потребоваться шаги, отличные от тех, что приведены в этой статье. Приведенные в этом руководстве процедуры предназначены исключительно для вышеперечисленных версий. Тем не менее общая концепция применима и к другим версиям.
|
Распаковка полученных файлов исходного кода
tar zxf httpd-2.2.0.tar.gz |
|
Установка Informix и Client SDK
Для установки Informix в вашей Linux-системе выполните следующие шаги:
groupadd informix |
su informix mkdir /opt/informix |
Bourne Again shell (bash):
INFORMIXDIR=/opt/informix |
или
setenv INFORMIXDIR /opt/informix |
mv IIF*.tar /opt/informix |
./install_rpm -acceptlicense=yes |
После запуска скрипта просто следуйте инструкциям на экране, чтобы завершить установку Informix. Убедитесь, что вы используете путь /opt/informix в качестве установочной директории. Флаг принятия условий лицензии следует устанавливать только в том случае, если вы принимаете условия лицензии Informix.
mv client*.tar /opt/informix |
./installclientsdk |
|
Настройка Informix и Informix Client SDK
Bourne Again shell (bash):
set INFORMIXDIR=/opt/informix |
или
setenv INFORMIXDIR /opt/informix |
dbservername nettype hostname servicename [options]
Вот что было добавлено в нашем случае:
myserver onsoctcp myserver port_alias |
Указанный порт также должен быть открыт в вашей системе. В этом примере он был открыт в файле /etc/services. Ниже приведен пример строки, добавленной в файл services:
port_alias 8201/tcp |
DBSERVERNAME myserver |
Переменная DBSERVERNAME – это уникальное имя, назначенное определенному экземпляру сервера базы данных. DUMPDIR – директория, в которую сервер выгружает общую память, а также сообщения. LOGDIR – это директория для хранения журналов экземпляра IDS. MSGPATH содержит полный путь к файлу регистрации сообщений. PHYSDBS – это имя пространства dbspace, содержащего физический журнал. ROOTNAME – имя корневого пространства root dbspace. ROOTPATH – полный путь к начальному фрагменту пространства root dbspace. ROOTSIZE – размер начального фрагмента пространства root dbspace.
su informix mkdir /opt/informix/logdir |
cd /opt/informix/bin |
onstat - |
"shared memory not initialized for INFORMIXSERVER 'myserver'", значит, установка не работает. Если же вы увидите нечто похожее на "IBM Informix Dynamic Server Version 10.00.UC4 -- On-Line -- Up 00:00:07 -- 19508 Kbytes", значит, все запустилось и работает.
Если позже вам потребуется остановить сервер, выполните следующую команду:
onmode -kuy |
С любыми вопросами по Informix Dynamic Server можно обращаться в
информационный центр IBM Informix Dynamic Server v10.0 (EN).
|
Для установки Apache с поддержкой динамически загружаемых модулей выполните следующие шаги:
cd /usr/local/src/httpd-2.2.0/ |
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
#. Если строки не найдены, добавьте их в файл без символов #. Это позволит Apache корректно обрабатывать php-файлы.
|
Для установки PHP выполните следующие шаги:
cd /usr/local/src/php-5.1.2/ext |
cd /usr/local/src/php-5.1.2 |
php -m |
buildconf, configure, make или make install сработали не так, как ожидалось.
У вас есть возможность сконфигурировать модуль pdo_informix после настройки самого PHP.
cd pdo_informix |
; Directory in which the loadable extensions (modules) reside.
В нашем примере нужные нам строки выглядят следующим образом:
; Directory in which the loadable extensions (modules) reside. |
Еще одно изменение, которое необходимо внести в файл php.ini – это определение расширений PDO и pdo_informix. Сведения о них находятся в разделе Dynamic Extensions файла php.ini. Если эти расширения были созданы в качестве общих модулей, вам необходимо скопировать их в вышеуказанную директорию расширений и разрешить в файле php.ini, как показано ниже:
extension=pdo.so |
|
Проверка работы созданного Web-сервера
Для проверки работы созданного Web-сервера выполните следующие шаги:
/usr/local/apache/bin/apachectl start |
Откройте ваш любимый Web-браузер и наберите в адресной строке localhost. Вы должны увидеть начальную страницу Apache. Это будет означать, что Apache запустился.
Сотрите файл index.html и замените его следующим файлом (с именем index.php):
<html> |
После этого, когда вы откроете измененную страницу (http://localhost/index.php), вы должны увидеть текст PHP and Apache are playing nicely!. Если вместо этого вы видите код PHP, значит, настройка совместной работы Apache и PHP не удалась.
ps -aef | grep oninit |
Если найдены какие-либо процессы, значит, Informix работает. Если же процессы не обнаружены, запустите Informix с помощью команды, указанной ранее в этом руководстве. Инструмент, который использует Informix для создания или удаления баз данных и таблиц, а также для вставки и удаления данных – это dbaccess. Вы можете запустить dbaccess из следующей директории:
/opt/informix/bin/dbaccess |
Не забудьте сделать следующее:
Если вы не знакомы с утилитой dbaccess, вы можете найти документацию по работе с ней в Интернете.
<?php |
Переменные в строке подключения соответствуют потребностям нашей системы. Выберите переменные и их значения, чтобы они подходили для вашей системы и вашей среды. Первая строка – это строка подключения к базе данных Informix. Структура informix: необходима для открытия строки подключения. Значением переменной host является просто имя хоста, на котором запущен сервер. Значением переменной service является номер порта, открытого для вашей базы данных (/etc/services). Переменная database содержит имя базы данных, которую вы создали ранее. Переменная server содержит имя экземпляра базы данных, созданного ранее. Переменная protocol – это тип протокола, который вы указали в файле /etc/sqlhosts. Остальные параметры говорят сами за себя. Последние два параметра объекта PDO – это имя пользователя и пароль. Убедитесь, что пользователь был добавлен в базу данных sysuser, как это было описано выше.
Когда вы откроете Web-страницу test.php, вы должны увидеть строки Connection Established! и Table Contents, за которыми следует содержимое вашей таблицы.
Поздравляем! Теперь ваша система LAIP готова к использованию!
|
Метки: informix и php |
Синтаксис .htaccess |
|
Метки: синтаксис .htaccess |
Для чего служит .htaccess |
Для чего служит .htaccess?
Набирая адрес в строке
браузера, вы получаете на свой
компьютер файлы, которые отображает
браузер. Управление тем, какие файлы и
как вам показывать (пересылать)
осуществляет веб-сервер. Наиболее
популярных серверов два: IIS и Apache.
Как и любая программа, веб-сервер
имеет определенные настройки. Но, у
вас, как пользователя Апача может (и
скорее всего не будет, если говорить о
виртуальном хостинге) прав менять
конфигурацию Апача через его главные
файлы, действие которых
распространяется на всех
пользователей этого сервера. Но, вы
можете менять некоторые
конфигурационные файлы, который
распространяют свое действие только
на ваш сайт. Один из таких файлов -
.htaccess
Это файл гибкой настройки веб-сервера
Апач. "Гибкий" обозначает, что как
только вы поменяли что-то в этом файле,
изменения тут же вступают в силу. С
помощью него можно переопределить
многие директивы из файла httpd.conf (этот
файл является главным
конфигурационным файлом сервера Апач
и его действия распространяются
полностью на всех пользователей
данной копии Апача). В случаях, когда у
вас нет доступа в файлу настройки
Апача (тот же виртуальный хостинг), вам
поможет именно этот файл.
Этот файл не доступен веб-пользователю
из браузера. Если файл .htaccess
расположен в корневой директории
сервера, то его действия
распространяется на весь сервер,
кроме тех папок, где находится другой
файл .htaccess (и кроме всех папок "ниже"
этой папки со вторым .htaccess).
Пример:
Структура ваших директорий на сервере
такая:
|-user
| |
| -user1
| |
| -user2
|
|-data
| |
| -data1
| |
| -data2
|
Директории user1 и user2 будут вложенными
по отношению к директории user. Если мы
поместим в директорию www файл .htaccess, то
его действие будет автоматически
распространяться и на директории user1 и
user2.
В директорию data помещаем другой файл
.htaccess, по-сравнению, с тем, что
находится в директории user. И для
директорий data1 и data2 будет действовать
файл .htacсess, находящийся в data.
Теперь, в директорию user2 мы помещаем
еще один файл .htaccess, который отличен от
того, что находится в директории 2мя
уровнями выше (это директория user). В
итоге, настройки для директории user2
будут определяться только тем
файлом .htaccess, который находится в этой
директории.
Так как чаще всего Апач настроен так,
что всегда ищет этот файл в директории,
то .htaccess поможет вам быстро и без
останова сервера произвести его
перенастройку.
Синтаксис .htaccess
Вот обязательной синтаксис,
несоблюдение которого приводит к
ошибкам сервера:
- пути к файлам (директориям)
указываются от корня сервера. Пример:
/opt/home/www.astanafoto.com/htdocs/config/.htpasswords
- домены с указанием протокола
Пример: Redirect / http://www.site.ru
Файл имеет название именно "точка"
htaccess
Должен быть записан в UNIX-формате. Для
оболочки FAR, достигается F4 (редактирование
файла), Shift+F2 (выбрать "сохранить как
UNIX-текст").
Как запретить веб-посетителям
читать файлы в директории?
Запрет на все
файлы:
deny all
Где all обозначает "все".
Разрешить доступ с
определенного ip:
order allow deny
deny all
allow <ваш ip>
В данном случае, <ваш ip>
обозначает конкретный адрес.
Например:
order allow deny
deny all
allow 192.126.12.199
Запретить доступ с
определенного ip:
order allow deny
deny all
deny <ваш ip>
Использование <ваш ip>
аналогично для примера выше.
Запрет на группу файлов по
маске:
order allow,deny
deny all
Определяет доступ к файлу по его
расширению.
Например запрет на доступ к файлам с
расширениям "inc" для веб-посетителей:
order allow,deny
deny all
В данном примере сам веб-сервер Апач
может обращаться к файлам с таким
расширениям.
Запрет на конкретный файл:
Можно поставить запрет на конкретный
файл по его названию и расширению.
order allow,deny
deny all
В данном примере стоит запрет на
обращения к файлу config.inc.php.
Пароль на директорию:
AuthName "Private zone"
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
require valid-user
Значение AuthName будет выводиться для
посетителя и может использоваться для
пояснения запроса авторизации.
Значение AuthUserFile указывает на место,
где хранится файл с паролями для
доступа к данной директории. Этот файл
создается специальной утилитой
htpasswd.exe.
Например в директории, которую
защищаем паролем создаем такой .htaccess:
AuthName "For Registered Users Only"
AuthType Basic
AuthUserFile /pub/site.ru/.htpasswd
require valid-user
В этом примере, посетитель при запросе
директории, будет читать фразу "For
Registered Users Only", файл с паролями для
доступа должен лежать в директории
/pub/site.ru/ и называться .htapasswd .
Директория указывается от корня
сервера, если вы неправильно зададите
директорию, то Апач не сможет
прочитать файл .htpasswd и никто не
получит доступа к данной директории.
Пароль только на 1 файл:
Аналогично паролированию директории
полностью, можно ставить пароль
только на 1 файл.
Пример установки пароля на файл
private.zip:
AuthName "Users zone"
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
Пароль на группу файлов:
Аналогично, используя
можно ставить пароли по маске файлов.
Пример установки пароля на доступ ко
всем файла с расширением "sql":
AuthName "Users zone"
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
Проверка прав
доступа
Задача: есть каталог a1 и в
нем два вложенных каталога a2, a3,
введено 2 уровня пользователей. 1
группа имеет доступ только к a1 и a2, 2-я
ко всем трем каталогам. Необходимо
проводить аутентификацию только 1 раз
- при доступе к a1, но при этом соблюдать
права на доступ к а2 и а3.
Ник и пароль запрашиваются только при
входе на а1 - если у юзвера есть доступ
на а2 пароль уже не запрашивается. Если
на а3 доступа нет, вылетит табличка "введите
пароль".
www.site.ru/a1
www.site.ru/a1/а2
www.site.ru/a1/a3
a1 - общий и вместе с тем закрытый. а2 и а3
только для отдельных личностей.
файл .htaccess для каталога а1:
AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/login/htdocs/clousearea/.htpasswd"
require valid-user
файл .htaccess для каталога а2:
AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/login/htdocs/clousearea/.htpasswd"
require user юзвер1 юзвер2 юзвер3
файл .htaccess для каталога а3:
AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/абв/htdocs/clousearea/.htpasswd"
require user юзвер1 юзвер4 юзвер5
Как сделать перенаправление (редирект)
посетителя?
Редирект на другой
url:
Что бы сделать перенаправления
посетителя на сайт http://site.ru в .htaccess
Redirect / http://www.site.ru
Показ разных страниц, в
зависимости от IP адреса посетителя:
SetEnvIf REMOTE_ADDR <нужный ip адрес>
REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /another_page.html
Например, перенаправление посетителей
с ip адресом 192.12.131.1 на страницу
about_my_sity.html:
SetEnvIf REMOTE_ADDR 192.12.131.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /about_my_sity.html
Перенаправление посетителя
при запросе определенных страниц:
Это уже для всех сетевых вирусов и
сканеров. Теперь любой запрос с адресом
/_vti_bin будет автоматически
перенаправляться на Microsoft:
redirect /_vti_bin http://www.microsoft.com
redirect /scripts http://www.microsoft.com
redirect /MSADC http://www.microsoft.com
redirect /c http://www.microsoft.com
redirect /d http://www.microsoft.com
redirect /_mem_bin http://www.microsoft.com
redirect /msadc http://www.microsoft.com
RedirectMatch (.*).exe$ http://www.microsoft.com$1
Как сделать
стартовой другую страницу?
Что бы поменять страницу,
которая будет показываться при
обращении к директории, пишем:
DirectoryIndex <нужная страница>
Можно указывать несколько страниц.
DirectoryIndex index.shtml index.php index.php3 index.html
index.htm
Как заставить Апач
обрабатывать SSI директивы?
SSI позволяют "собирать"
страницу из кусочков. В одном кусочке
у вас код меню, в другом код верхней
части страницы, в третьем - нижней. А
посетитель видет обычную страницу,
которая состоит из того кода, который
входит в ваши кусочки.
Необходимы обязательные
установки в httpd.conf:
В блоке, начинающемся с
заканчивающийся в строку
Options Indexes добавьте Includes.
После, в файле .htaccess пишем:
AddHandler server-parsed .shtml .shtm .html .htm
Как заставить Апач
выполнять в html документах php код?
Иногда бывает полезно "обмануть"
посетителя, выдавая ему свои php-скрипты
или иные файлы, как html файлы. Реально
используется для индексации поисковой
системой Rambler php-скриптов. Некоторые
делаю мелкие фишки, вроде того, что дают
фалам расширения совпадающие с какими-либо
"знаковыми" именами. Например, на
сайте www.osg.ru
используются файлы с расширением osg:
index.osg, script.osg и т.п.
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
При большой посещаемости сервера может
вызвать тормоза. Спрашивайте у админа.
Как самому
обрабатывать ошибки Апача?
Наиболее интересные и
полезные ошибки Апача это: 403-404, 500.
403 - пользователь не прошел
аутентификацию, запрет на доступ
(Forbided).
404 - запрашиваемый документ (файл,
директория) не найден.
500 - внутренняя ошибка сервера (к
примеру, ошибка в синтаксисе файла
.htaccess).
Для того, что бы пользователю при этих
ошибках были показаны ваши
собственные сообщения об ошибках, в
.htaccess пишем:
ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html
При этом при возникновении 404 ошибки
пользователю загрузится файл
errors/403.html.
Удобно делать собственный обработчик
на некоторые ошибки. В .htaccess пишем:
ErrorDocument 403 /errors/error.php?403
ErrorDocument 404 /errors/error.php?404
ErrorDocument 500 /errors/error.php?500
В error.php через $HTTP_SERVER_VARS['REQUEST_URI']
определяем какой документ вызвал
ошибку и дальше обрабатываем. Если в
.htaccess на ErrorDocument стоит указание файла с
полным путем (http://site.ru/error.php), то
$HTTP_SERVER_VARS['REQUEST_URI'] будет содержать
этот файл, а не вызвавший ошибку.
В Internet Explorer 5.0 неправильно
обрабатывается файл, вызывающийся при
ошибке, если его размер меньше 1
килобайта. Будет вызвана стандартная
страница IE 404.
Как поставить запрет
на отображение содержимого директории
при отсутствии индексного файла?
Предположим, что у вас вся
графика, используемая на сайте
находится в директории img. Посетитель
может набрать в адресной строке
браузера эту директорию и увидеть
список всех ваших графических файлов.
Конечно, это не нанесет вам урона, но
можно и не дать такого просмотра
посетителю. В .htaccess пишем:
Options -Indexes
Можно ли указать
кодировку на все файлы, в которой по
умолчанию получает документы браузер?
На заре интернета и зарождения
браузеров, часто была ситуация, что
браузер не мог автоматически
определить, в какой из русских
кодировок написан документ и в браузер
выдавалась какая-то каша. Для избежания
этого указываем, что все отдаваемые
страницы будут иметь кодировку windows-1251:
AddDefaultCharset windows-1251
Можно ли указать
кодировку на загружаемые файлы?
При загрузке посетителем
файла на сервер, возможна
перекодировка его - указываем, что все
получаемые файлы будут иметь кодировку
windows-1251:
CharsetSourceEnc windows-1251
Создал файл .htaccess, но
сервер выдает 500 ошибку - Internal Erorr
Ошибка синтаксиса или файл
записан не в том формате.
Смотрите вопрос #2.
Источник: http://www.wmaster.ru
|
|
Защита сайта с помощью .htaccess |
AuthType Basic
AuthName admin
require valid-user
htpasswd -cm .htpasswd admin
htpasswd -m .htpasswd admin
deny all
AuthType Basic
AuthName "Private zone. Only for administrator!"
AuthGroupFile /usr/host/mysite/group
AuthUserFile /usr/host/mysite/.htpasswd
require group admins
|
Метки: защита сайта с помощью .htaccess |
Torrent сервер для раздач файлов |
на платформе Gentoo
Не так давно, меня начал доставать мой низкий рейтинг на трекерах. Времени исправлять ситуацию нет, но информация иной раз бывает очень нужна ;)
Дома у меня стоит сервер Gentoo с ежемесячным остатком трафика, вот я и решил исправить положение.
Схема у нас будет такая: самописный демон будет запускать консольный клиент rtorrent, который, в свою очередь будет через XMLRPC работать с SCGI гейтом, за счёт чего у нас будет Web-интерфейс управления нашими торрентами. Сами торренты будем забирать с сервера по средствам FTP.
В качестве гейта я выбрал lighttpd, по 3м причинам: легко настраивается, мало ест памяти, легче спрятать в интрасеть.
Кстати сервер Lighttpd мне очень понравился. Лёгкий, оптимизированный, функциональный, разве что не совсем безопастный. В этом сервере я нашёл все те положительные качества, которые когда-то нашёл в Gentoo.
Установка необходимого ПО.
Зададим необходимые USE-флаги(для этой операции в системе должен уже быть порт gentoolkit):
# euse -E curl libwww xmlrpc sqlite php
# euse -D minimal
Теперь установим необходимое:
# emerge -avn lighttpd rtorrent dtach xmlrpc-c subversion vsftpd
Настройка lighttpd
# vim /etc/lighttpd/lighttpd.conf
Найдите там секцию server.modules и добавте в неё строчку:
code:
"mod_scgi",
code:
scgi.server = (
"/RPC2" = > (( "host" = > "127.0.0.1", "port" = > 5000, "check-local" = > "disable" )) )
code:
depend() { use net.* } start() { ebegin "Starting rtorrent" start-stop-daemon --start --chuid $USER \ --env TERM="xterm" \ --env HOME="/home/$USER" \ --exec /usr/bin/dtach -- -n $SOCKET /usr/bin/rtorrent eend $? } stop() { ebegin "Stopping rtorrent" start-stop-daemon --stop --signal 2 --name rtorrent eend $? }
code:
#Пользователь от которого будет запускаться rtorrent. От Root'а лучше не запускать. USER="sb0y" # Сокет rtorrent'а. SOCKET="/tmp/rtorrent.dtach"

code:
// Текущая ссылка на wtorrent define( 'URL', 'http://192.168.0.1:81' ); define( 'BASE', 'http://192.168.0.1:81' ); // Информация для соединения с rTorrent. Логин и пароль можно не изменять, если вы ранее не настроили авторизацию в rTorrent. define( 'RT_HOST', 'localhost'); define( 'RT_PORT', 81); define( 'RT_DIR', 'RPC2/'); define( 'RT_AUTH', false); define( 'RT_USER', 'my_user'); define( 'RT_PASSWD', 'my_password'); // физическое место положение wtorrent на сервере define( 'DIR_EXEC', '/var/www/localhost/htdocs/');
code:
irmessage_enable=YES chown_uploads=NO idle_session_timeout=900 data_connection_timeout=120 ascii_upload_enable=NO ascii_download_enable=NO chroot_list_enable=YES listen=YES ls_recurse_enable=NO anonymous_enable=YES anon_upload_enable=NO anon_mkdir_write_enable=NO local_enable=NO write_enable=NO
code:
[...] /mnt/hdc1/torrents /home/ftp/torrents none ro,bind 0 0
Позднее ещё опробую для этой задачи NFS и если результат меня удивит дополню статью. На момент написания этого текста мне казалось, что для того чтобы тягать с сервера фильмы по гигабайту больше всего подходит FTP.
|
Метки: torrent сервер для раздач файлов |
обновление документации к GIMP. |

Вышло обновление документации к GIMP. Документации на русском языке стало больше, обновлена краткая справка по программе.
Скачать
GIMP User Manual 2.4.1|
Метки: обновление документации к gimp. |
Ubuntu LiveCD с помощью Remastersys |
|
|
OpenOffice.org 3.0 Pro от Инфра ресурс |

Вышел релиз OpenOffice.org 3.0 Pro от Инфра ресурс.
Скачать с оф. сайта бинарные сборки
OpenOffice.org 3.0 ProСкачать с Яндекса бинарные сборки
OpenOffice.org 3.0 Pro, основанный на базе OpenOffice.org, лицензии GNU LGPL, доступен для свободной загрузки и использования.
Дистрибутив создан для платформ Windows, GNU/Linux i386 и x86-64 и FreeBSD 7.0 на казахском, русском, турецком и украинском языках.
Пакет офисных приложений OpenOffice.org 3.0 pro содержит все заявленные свойства официальной версии 3.0 Community build (vanilla) и дополнен оригинальным набором улучшений от компании «Инфра-Ресурс», ориентированного на пользователей, говорящих на славянских и тюркских языках.
Версия OpenOffice.org, именуемая постфиксом pro, регулярно выходит вслед за официальной версией (vanilla) на протяжении последних лет и снискала заслуженную популярность среди квалифицированных пользователей персональных компьютеров в школах, бизнесе, науке и государственных учреждениях.
Успех OpenOffice.org pro обеспечивается продуманной целевой политикой компании «Инфра-Ресурс» по поддержке национальных приоритетов в области производства электронных документов в странах, где преобладают славянские и тюркские языки.
Начиная с этого выпуска, OpenOffice.org 3.0 pro выходит на новый рубеж, предоставляя возможность полноценной проверки тюркских языков на основе вновь созданного, уникального алгоритма и содержит интегрированные словарь и правила для турецкого языка.
Выпуская OpenOffice.org 3.0 pro, компания «Инфра-Ресурс» рассчитывает привлечь внимание заинтересованных лиц из Российской Федерации и зарубежья с целью концентрации усилий для улучшения языковой поддержки славянских и/или тюркских языков.
Традиционно, OpenOffice.org 3.0 pro содержит целый ряд улучшений по сравнению с базовой, ванильной сборкой, наиболее интересные из которых перечислены ниже:

|
Метки: openoffice.org 3.0 pro от инфра ресурс |
Установка Picasa 3.0 beta в Ubuntu |

Linux версия популярного менеджера фотографий Picasa базируется на использовании Wine, для работы с цифровыми камерами используется библиотека libgphoto2, поддерживается интеграция в десктоп окружения Gnome и KDE.
Одним из самых интересных новшеств Picasa 3.0, является поддержка распознавания лиц на фотографиях. Например, программа самостоятельно может выделять фотографии на которых присутствуют определенные люди и присваивать им соответствующие тэги. Кроме того в Picasa 3.0 добавлены средства для добавления текста или водяных знаков на фотографии, переработаны инструменты для создания коллажей и осуществления кадрирования, добавлена возможность автоматического устранения эффекта красных глаз и восстановления поврежденных частей изображения на основе экстраполяции прилегающих областей.
Необходимо получить ключ к репозиторию Google, вводим в консоли:
wget https://dl-ssl.google.com/linux/linux_signing_key.pubдобавляем ключ командой:
sudo apt-key add linux_signing_key.pubдобавляем репозиторий, открываем список доступных репозиториев:
sudo gedit /etc/apt/sources.listи добавляем следующую строку:
сохраняем файл.
Обновляем список доступных пакетов командой:
sudo apt-get updateУстанавливаем менеджер фотографий
sudo apt-get install picasa|
Метки: установка picasa 3.0 beta в ubuntu |
нечто неординарное |

|
Метки: туалет на краю света |
Системы со свободным ПО обходятся гораздо дешевле, чем предполагалось |
Шустер отмечает, что обслуживание компьютера со свободным ПО обходится МИДу примерно на 2000€ в год дешевле, чем обслуживание проприетарных систем. (в первом случае около 1000€ в год, во втором, соответственно, более 3000).
В настоящее время 4000 компьютеров (из 11000) министерства работают под управлением ОС GNU/Linux. Тем самым почти половина из 230 немецких консульств и посольств переведены на свободное ПО. Переход должен завершиться к середине будущего года.
Также Шустер не забывает упомянуть и о трудностях, возникших при переходе на СПО. В частности, в посольстве в Японии возникла проблема с шрифтами в ОpenОffice. Немного сложнее было побороть сопротивление 200 сотрудников IT-отдела, многие из которых ничего не слышали о Linux. Бунтари, однако, были направлены на курсы, где они быстро распознали преимущества СПО.
>>> Подробности.
Метки: opensource, история успеха, конференция
![]()
|
Метки: системы со свободным по |
Get Slack |
Or, you can get your Slackware ISOs through BitTorrent using our
torrents page.
Or again, you can download the complete Slackware distribution from
one of our mirrors (please use the one closest to your country). If you'd
like to provide a mirror, please see the
mirroring guidelines text file.
|
Метки: get slack |
Я из шредера ушел, а под рутом не зашел( |
|
Метки: линукс прикол |
Unix (курс молодого бойца) |
|
Метки: unix linux bsd |
linux без привязки к дистрибу,книга |
| Команды Linux. Справочник | Linux![]() |
||
Название: Команды Linux. СправочникАвтор: Скловская С. Л. Издательство: ДиаСофтЮП ISBN: 5-93772-113-6 Год: 2004 Формат: DJVU Страниц: 848 Язык: Русский Описание: Книга содержит свыше 530 команд: классических и совсем новых, популярных и не очень, незаслуженно забытых или не нашедших у нас должного распространения. Их описания расположены в алфавитном порядке. Все команды также класифицированы по тематическим направлениям и представлены в разделе Типовые операции. Третье издание дополнено новыми командами по самым разным направлениям. Большое внимание уделено файловым системам ext3 и ReiserFS и связанным с ними командам. Справочник расчитан на пользователей Linux без привязки к определенному дистрибутиву, а также на пользователей FreeBSD и ОС Unix. http://knigka.ifolder.ru/1784714 |
|||
|
Метки: linux без привязки к дистрибу книга |