-Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в sudosu

 -Интересы

all forks bsd debian free soft freebsd linux netbsd openbsd slackware linux ubuntu unix web hack админские приколы

 -Сообщества

Участник сообществ (Всего в списке: 1) Linux_Comunity

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 19.10.2008
Записей:
Комментариев:
Написано: 205





дистрибутивы ОС MINIX 3

Четверг, 20 Ноября 2008 г. 12:38 + в цитатник
Версия
дистрибутива
Размер
дистрибутива, (mb)
Дата
выхода дистрибутива
Скачать
Примечание



3.1.1
38
mb
25.10.2006
скачать
для платформы PowerPC



3.1.3
14
mb
19.11.2008
скачать
экспериментальная версия,


релиз 3194 

Метки:  

http://lg.ip4.ru/

Четверг, 20 Ноября 2008 г. 12:34 + в цитатник
Игры для Linux

Ubuntu wine + Photoshop

Понедельник, 10 Ноября 2008 г. 19:30 + в цитатник
возникла проблема с Фотошопом. После загрузки стал ругаться на то, что не может найти какие-то нужные ему библиотеки.

Путем запуска его из консоли выяснил, что wine не может использовать первый мегабайт адресного пространства ДОС.

preloader: Warning: failed to reserve range 00000000-60000000
err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report

Лечится это просто:
$ sudo sysctl -w vm.mmap_min_addr=0
$ sudo gedit /etc/sysctl.conf

Ищем vm.mmap_min_addr = 65536 и меняем 65536 на 0.

Все.

что где и подробности процесса загрузки linux

Воскресенье, 09 Ноября 2008 г. 18:20 + в цитатник
Расположение сценариев инициализации системы для различных версий UNIX

Расположение сценариев инициализации системы для различных версий 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



Когда-то давно термин bootstrapping (загрузка) в компьютерной области означал загрузку бумажной ленты, на которой хранилась программа начальной загрузки, или же ввод программы начальной загрузки вручную при помощи расположенных на передней панели переключателей адреса/данных/управления. Современные компьютеры оборудованы устройствами, которые значительно упрощают процесс первоначальной загрузки – однако это не означает, что этот процесс является простым.


Давайте сначала бросим самый общий взгляд на процесс начальной загрузки Linux, чтобы охватить картину полностью. Затем мы более подробно рассмотрим, что происходит на каждом этапе процесса. Ссылки на исходный код, которые будут приводиться постоянно в процессе изложения, помогут при изучении дерева исходных кодов ядра и подскажут, где получить дополнительную информацию.


Общие сведения


На рисунке 1 показан вид с "высоты птичьего полета".




Рисунок 1. Вид на процесс начальной загрузки в Linux с высоты птичьего полета


Взгляд на загрузку ядра Linux с самого высокого уровня


При первоначальной загрузке системы или при ее перезагрузке системы процессор выполняет код, который расположен в хорошо известном месте. В персональном компьютере это место соответствует базовой системе ввода/вывода (BIOS), которая хранится в расположенной на системной плате микросхеме энергонезависимой flash-памяти. Центральный процессор (CPU) встраиваемой системы обращается к reset-вектору для получения адреса программы, которая хранится по известному адресу в flash/ROM-памяти. В любом случае это приводит к одному и тому же результату. Так как персональные компьютеры отличаются намного большей универсальностью, BIOS должна определить, какие именно устройства являются кандидатами на выполнение начальной загрузки. Мы подробно рассмотрим данный процесс позже.


После того, как устройство, с которого будет осуществляться начальная загрузка, найдено, начальный загрузчик первой ступени загружается в оперативную память и начинается его выполнение. Этот начальный загрузчик имеет размер менее 512 байт (один сектор), и его задачей является загрузка начального загрузчика второй ступени.


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


Таков в общих чертах процесс начальной загрузки в Linux. Теперь давайте углубимся чуть далее и рассмотрим некоторые подробности начальной загрузки в 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

В начало


Запуск системы


Запуск системы определяется той аппаратной платформой, на которой выполняется начальная загрузка Linux. На встраиваемых платформах при включении питания системы или при перезагрузке используется bootstrap-среда. В качестве примеров можно привести U-Boot, RedBoot и MicroMonitor от компании Lucent. Эти программы хранятся в специальной области flash-памяти, расположенной во встраиваемой системе: они предоставляют средства для загрузки образа ядра Linux во flash-память и в дальнейшем обеспечивают выполнение этого ядра. В дополнение к функциям по хранению и загрузке образа Linux эти мониторы загрузки также выполняют тестирование системы на каком-то уровне и инициализацию аппаратного обеспечения. Во встраиваемых системах подобные мониторы загрузки обычно объединяют функции загрузчиков первой и второй ступени.



Просмотр содержимого MBR

Для просмотра содержимого MBR используйте следующую команду:




# dd if=/dev/hda of=mbr.bin bs=512 count=1


# od -xa mbr.bin

Командаdd, которая выполняется с правами root, считывает первые 512 байт с /dev/hda (первый IDE-жесткий диск) и записывает их в файл mbr.bin. Команда od выполняет печать полученного двоичного файла в форматах hex и ASCII.




На персональных компьютерах загрузка 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 передает ему управление.




В начало


Загрузчик 1-й ступени



Первичный начальный загрузчик, хранящийся в MBR, представляет собой образ размером 512 байт, который содержит как программный код, так и небольшую таблицу разделов (см. рисунок 2). Первые 446 байт представляют собой собственно первичный загрузчик, который содержит как программный код, так и текст сообщений об ошибках. Следующие 64 байта представляют собой таблицу разделов, которая содержит запись для каждого из четырех разделов диска (по 16 байт каждая). В конце MBR располагаются два байта, которые носят название "магического числа" (0xAA55). Это магическое число служит для целей проверки MBR.




Рисунок 2. Строение MBR

Строение MBR


Задача первичного загрузчика - отыскать и загрузить вторичный загрузчик (загрузчик второй ступени). Он делает это, просматривая таблицу разделов в поиске активного раздела. Когда первичный загрузчик обнаруживает активный раздел, он просматривает оставшиеся разделы с целью убедиться, что они не являются активными. После завершения этой проверки с устройства в оперативную память считывается загрузочная запись активного раздела.




В начало


Загрузчик 2-й ступени



Вторичный загрузчик или загрузчик второй ступени было бы более логично назвать загрузчиком ядра. Его задачей на данной стадии является загрузка ядра Linux и, возможно, загрузка начального RAM-диска.



Загрузчики GRUB разных ступеней

Директория /boot/grub содержит загрузчики stage1,stage1.5 и stage2, а также некоторые альтернативные загрузчики (например, CR-ROM использует iso9660_stage_1_5).




Загрузчики для среды 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-й стадии вызывает образ ядра.




В начало


Ядро



Ручная загрузка в GRUB

Из командной строки в GRUB можно загрузить нужное ядро с указанным образом initrd следующим образом:



grub> kernel /bzImage-2.6.14.2
[Linux-bzImage, setup=0x1400, size=0x29672e]

grub> initrd /initrd-2.6.14.2.img
[Linux-initrd @ 0x5f13000, 0xcc199 bytes]

grub> boot

Uncompressing Linux... Ok, booting the kernel.



Если известно название ядра, которое вы хотите загрузить, то просто введите символ прямого слэша (/) и затем нажмите клавишу Tab. После этого GRUB отобразит список ядер и образов initrd.



После того как образ ядра оказывается в памяти и ему передается управление от загрузчика 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.




Рисунок 3. Выполнение основных функций при загрузке ядра Linux для i386


Основные функции в процессе загрузки ядра Linux i386


При обращении к 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 удаляется и монтируется действительная корневая файловая система.



Вывод функции decompress_kernel


Функцияdecompress_kernel отвечает за те обычные сообщения о разархивировании, которые появляются на экране :


Uncompressing Linux... Ok, booting the kernel.



Функция initrd позволяет создать компактное ядро Linux, где драйверы скомпилированы как загружаемые модули. Эти загружаемые модули обеспечивают доступ ядра к дискам и файловым системам, которые имеются на этих дисках. Также имеются драйверы для других аппаратных устройств. Так как корневая файловая система представляет собой файловую систему на диске, то функция initrd обеспечивает для загрузчика возможность обратиться к диску и смонтировать действительную корневую файловую систему. Во встраиваемой системе без жесткого диска initrd может представлять собой окончательную файловую систему, или же окончательная файловая система может монтироваться при помощи сетевой файловой системы (Network File System, NFS).





В начало


Init


После загрузки и инициализации ядра запускается первое приложение в пространстве пользователя. Это первая из вызываемых программ, которые скомпилированы со стандартной библиотекой C. До этого момента процесса стандартные C-приложения еще не выполнялись.


На обычных настольных системах с операционной системой Linux обычно первым запускаемым приложением является/sbin/init. Однако это обязательно. Во встраиваемых системах редко требуется такая обширная инициализация, которую обеспечиваетinit(которая конфигурируется при помощи /etc/inittab). Во многих случаях можно запустить простой shell-скрипт, который запускает необходимые встраиваемые приложения.




В начало


Заключение



Как и сама операционная система Linux, процесс загрузки ядра является чрезвычайно гибким и универсальным и поддерживает большое количество процессоров и аппаратных платформ. В самом начале загрузчик loadlin обеспечивал простой способ загрузки Linux без поддержки каких-либо необязательных аксессуаров. Загрузчик LILO расширил круг поддерживаемых функций, однако его недостатком являлось отсутствие поддержки файловых систем. Последнее поколение загрузчиков, таких как GRUB, позволяет загружать Linux с самых различных файловых систем (начиная с Minix и заканчивая Reiser).


Метки:  

Custom Debian Distributions (CDD) : Промышленная платформа для создания специализиро

Воскресенье, 09 Ноября 2008 г. 18:14 + в цитатник
14.10.2008
Статья представляет собой обзор архитектуры и методов применения
инфраструктуры проекта Debian в коммерческих и свободных разработках.
Посвящена построению сред инсталяции, изменению поведения инсталятора,
распределённой установке, сборке LiveCD, добавлению стороннего ПО.



Преамбула




Статья, представленная вашему вниманию, посвящена построению сред инсталяции, изменению поведения инсталятора, распределјнным возможностям установки, сборке LiveCD, добавлению стороннего ПО, используя гибкую архитектуру Debian GNU/Linux.


Первоначально представлена в виде доклада на 4й международной конференции разработчиков и пользователей свободного программного обеспечения Linux Vacation Eastern Europe'2008 (LVEE-2008) 28 июня 2008 года, Гродно, Беларусь.


Позже был дополнен новой информацией о работах компании Promwad в области использования Debian-based дистрибутивов.



Все описанные проекты-примеры являются реальными заказами, выполненые автором в период c 2007 по 2008 год в сфере Outsourcing Software Devel­opment.




В начало


Что такое Custom Debian Distribution




Debian GNU/Linux -Операционная система, содержащая более 18000 программных пакетов различного назначения.



Custom Debian Distribution или CDD является подмножеством De­bian, призванный быть инструментом для специальных групп пользователей, сконфигурированный таким образом, чтобы предоставлять специальный функционал "из коробки"

1
.


Debian GNU/Linux включает в себя пакетную систему DEB
3
+APT
4
и инсталлятор промышленного уровня D-I, позволяющий гибко управлять составом устанавливаемого программного обеспечения, ходом инсталяции и вводить, при необходимости, новый функционал.




В начало


Архитектура и реализация инсталлятора De­bian (D-I)






Debian Installer (далее D-I) представляет собой специальную версию дистрибутива Debian, выполняющую задачи начального развјртывания операционной системы на устройстве (устройствах) пользователя.


Проектные решения


При проектировании D-I разработчики должны были учитывать следующие условия:




  • Поддержка более 12 принципиально различных архитектур (от встраиваемых компьютеров на базе ARM до мейнфремов IBM S/390)

  • Различные источники инсталяции и управляющие устройства (персональные компьютеры, бездисковые станции, серверы без видеоинтерфейсов и клавиатур, бортовая электроника)

  • Разнообразные методы управления разбиением носителя для инсталяции

  • Ручная, автоматизированная (Привет всем выпускникам военных кафедр технических ВУЗов) и автоматическая инсталяция

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


  • Локализация на национальные языки


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


Требования к инсталятору



  • Модульность -стандартные пакеты формата UDEB (micro DEB)


  • Расширяемость -простое добавление новых, нестандартных компонент

  • Гибкое управление порядком установки пакетов

  • Конфигурируемость -стандартный механизм debconf
    5

  • Перезагрузка в процессе инсталяции не требуется


  • Языки реализации ограничены Bourne Shell и С

  • Базовая система построена на основе BusyBox
    6

  • Вариативность внешнего вида (консольный, графика, web-based)



Стадии инсталяции



  1. Загрузка и инициализация -настройка инсталятора для последующей загрузки любых дополнительных компонент

  2. Загрузка и установка дополнительных компонент инсталятора ­расширение инсталятора до полной функциональности

  3. Конфигурирование сетевых интерфейсов


  4. Разметка и форматирование дисков и разделов

  5. Инсталяция целевой системы


Таблица 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 поддерживает большое количество разнообразных методов инсталяции. В некоторых случаях они могут комбинироваться. Определение инсталяционного метода базируется на следующих вопросах:



  • Как инсталятор будет загружен?


  • Откуда мы получим дополнительные компоненты udeb

  • Откуда мы возьмјм пакеты, необходимые для установки базовой системы

  • Откуда мы возьмјм пакеты, необходимые для установки наборов пакетов (tasks)


Для наиболее употребительных методов инсталяции ответы на эти вопросы даст таблица 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)



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 сокращениями):


			
Source: miu-netinstall
Section: debian-installer
Priority: optional
Maintainer: Vlad Shakhov <vlad.shakhov@somewhare.host>
Build-Depends: debhelper, libdebian-installer4-dev
Package: miu-netinstall
Architecture: all
XC-Package-Type: udeb
Depends: ${misc:Depends}, configured-network, di-utils
Description: Custom Debian network install
This is a hooks for Discover to report the installer activity.
XB-Installer-Menu-Item: 25



В первую очередь обратите внимание на 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, пример дан с сокращениями):



Source: util-linux
Build-Depends: libncurses5-dev, ..
Section: base
Priority: required
Maintainer: LaMont Jones <lamont@debian.org>

Package: util-linux
Architecture: any
Section: utils
Priority: required
Essential: yes
Depends: lsb-base (>= 3.0-6), tzdata (>=2006c-2)
Provides: schedutils, linux32
Description: Miscellaneous system utilities

Package: fdisk-udeb
Architecture: alpha amd64 arm armeb armel hppa i386 ia64
Priority: extra
Section: debian-installer
Depends: ${shlibs:Depends}
XC-Package-Type: udeb
XB-Installer-Menu-Item: 99900
Description: Manually partition a hard drive (fdisk)



Скрипт debian/postinst





debian/postinst выполняется согласно номеру меню и обычно включает большую часть функционала, реализуемого компонентом udeb.



Шаблон debian/templates



debian-installer/<component>/title 
Type: text _Description: <пункт меню>





Шаблон для debconf
5
. Включает в себя описание пункта для меню:



debian-installer/<component>/title 
Type: text _Description: <пункт меню>




Может также включать дополнительные записи, предназначенные для хранения настроек и сообщений.




Template: miu/server-uri
Type: text
Default: http://172.17.0.1/netinstall
Description: MIU netinstall server host
Server that store activity about installation




Хуки




Для части компонент D-I возможно добавление функциональности без изменения кода.



В настоящий момент поддерживается следующий набор "хуков" общего назначения:





  • base-installer -перед установкой базовой системы

  • post-base-installer -после установки базовой системы, но перед установкой ядра


  • _nish-install -финальные операции над системой



Существуют специализированные хуки apt-setup, main-menu и res­cue, с которыми вы можете ознакомится в документации на D-I.



Также к хукам можно отнести команды preseed (см. пункт 4.2)




d-i preseed/early_command и d-i preseed/early_command
, выполняющие аналогичную роль.






В начало


Нетривиальное применение D-I и CDD




Типовые задачи, решаемые созданием CDD:




  • изменение состава ПО в инсталяционном образе (например CD)


  • изменения в процессе инсталяции (в настройках по умолчанию)

  • автоматическая (OEM) инсталляция (preseed
    10
    )

  • распределјнная (сетевая) установка

  • создание LiveCD




Рассмотрим их подробнее.



Изменение состава ПО



Существуют два инструмента для создания инсталяционных образов:



debian-cd
11
:




  • обширная (и запутанная -прим. авт.) система настроек через переменные окружения Shell


  • позволяет изготавливать и официальные, и неофициальные сборки Debian

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

  • требует высокой квалификации пользователя




simple-cdd
12
:




  • интуитивно понятная конфигурация

  • профили проектов-возможность создать несколько наборов конфигураций спиcок желаемых пакетов

  • возможность задать ответы инсталятору (preseed)

  • кэширование зеркала перед сборкой ISO

  • раздельное задание источников для компонент инсталятора и устанавливаемых пакетов



Simple-cdd является надстройкой над debian-cd



Preseed : задание настроек инсталяции



Для управлением настройками в D-I и пакетной системе Debian используется debconf
5
.


preseed
10
-текстовый файл с ответами на вопросы debconf и имеет следующий вид:




# setting the default params
d-i debian-installer/locale string ru_RU
d-i netcfg/choose_interface select eth1
d-i mirror/country string manual
d-i mirror/http/hostname string linux.org.by
d-i base-installer/kernel/image string linux-image-2.6-486




Имя preseed-файла передајтся как параметр при загрузке ядра, может быть локальным или URL. Примеры для различных типов инсталяции:




preseed/url=http://host/path/to/preseed.cfg
preseed/file=/cdrom/preseed.cfg
preseed/file=/hd-media/preseed.cfg




Параметры preseed могут быть заданы как вручную (из приглашения загрузчика), так и используя DHCP.



Особо следует отметить специальный язык описания разделов для утилиты разметки дисков partman:



d-i    partman-auto/expert_recipe  strin     \ 
boot-root :: \
40 10000 1000000000 ext3 \
method{ format } form \
use_filesystem{ } filesystem{ ext3 } \
mountpoint{ \
. \
64 512 300% linux-swap \
method{ swap } format{ } \




В preseed-файл также могут включаться ответы на вопросы устанавливаемых приложений. К примеру OEM инсталяция может подразумевать начальное конфигурирование сервера samba или автоматический ответ "да" на вопрос о принятии лицении Sun Java JRE.



LiveCD в стиле Debian -live-helper



Пакет live-helper (включён в состав Debian начиная с Lenny )


13
предназначен для создания LiveCD на базе Debian. Возможности:




  • сборка образа в несколько этапов

  • полное конфигурирование каждого из этапов

  • создание ISO, netboot и USB-_ash образов плагины и хуки

  • поддержка сжатых и шифрованных файловых систем

  • добавление сторонних пакетов и репозиториев, как на фазе настройки

  • сборочного окружения, так и на фазе распаковки ПО

  • настройка загрузчиков

  • добавление любых дополнительных файлов, в том числе и перезаписывающих (особенно полезно для конфигурирования

    ) существующие в пакетах, устанавливаемых в образ


  • интеграция с инсталляторами Debian и Ubuntu (создание инсталляционных дисков, совмещјнных с livecd)



Проект хорошо документирован и быстро развивается





В начало


Примеры проектов с использованием CDD



В заключительной части статьи будут предоставлены примеры выполненных проектов, реализованных с помощью технологий Custom Debian Distri­bution. Основной упор сделан на то, каким образом решались задачи, обусловленные техническим заданием. Приводятся выдержки из конфигурационных и сборочных файлов, с разбором наиболее существенных фрагментов.




OEM-поставка. Многоформатный неинтерактивный плейер для видеоэкрана



Техническое задание:




  • OEM-установка, без единого вопроса

  • Дополнительное ПО собственной разработки

  • Работа из коробки без дополнительных настроек



Реализация:





  • Пакетирование собственного ПО в .deb

  • simple-cdd -сборка ISO на основе Debian Lenny



auto_profiles="miu"
di_codename="etch"
dist="lenny"
export SPLASHPNG=$PWD/../Player/examples/splash.png
export DISC_FINISH_HOOK=$PWD/copy_doc.sh







Что модифицировано:





  1. задаём собственный bootsplash

  2. указываем специальный хук для debian-cd, копирующий на образ проектную документацию

  3. используем инсталятор от Etch при пакетной базе от Lenny



miu.packages (список пакетов)




openssh-server
xyz-player
xyz-scheduler
linux-image-2.6-686-bigmem



Запрашиваем установку нестандартного ядра и openssh-сервера по умолчанию + устанавливаем 3rd-party пакеты собственной разработки.




  • preseed -ответы на вопросы инсталятора





miu.preseed (выборочно):





xserver-xorg xserver-xorg/config/device/driver select intel
xserver-xorg xserver-xorg/config/monitor/mode-list select 1024x768 @ 75 Hz
xserver-xorg xserver-xorg/autodetect_monitor boolean true
passwd passwd/username string user
passwd passwd/user-password password secret
d-i preseed/late_command string in-target sed -i '/DPMS/d' /etc/X11/xorg.conf




изменения:




  1. задаём настройки видео (обусловлены спецификацией на оборудование)

  2. создајм непривилегированного пользователя


  3. подправляем настройку Xorg по умолчанию




Обёртка над сборкой debian пакетов и iso-образа -Make_le





$(BUILD_DIR)/$(MIU_ISO): $(MIU_DEB)
cd cdd && env $(MIU_CDD_OPT) build-simple-cdd \
--profiles miu --conf profiles/miu.conf \
--local-packages "$^"






LiveCD демо-версия



Техническое задание



  • На основе проекта 5.1

  • Возможность закачки контента



Проект реализован с помощью Live-helper
13
. Были внесены некоторые изменения в конфигурацию по умолчанию.




  • LiveCD/con_g/binary, настройки бинарной стадии сборки:



LH_BINARY_IMAGES="iso"
LH_BOOTAPPEND_LIVE="noapic"
LH_BOOTLOADER="syslinux"



Задан загрузчик и дополнительные параметры к загрузке, и тип образа.




  • LiveCD/con_g/chroot, фаза развјртывания системы





LH_CHROOT_FILESYSTEM="squashfs"
LH_UNION_FILESYSTEM="aufs"
LH_LINUX_FLAVOURS="686-bigmem"
LH_PACKAGES="xyz-player pciutils openssh-server vsftpd less lftp mc"




Заданы пакет с ядром и дополнительные пакеты, требуемые для работы live-cd. В частности ftp-сервер для закачки контента, mc (mcedit) для управления файлами и редактирования конфигурации.




  • LiveCD/con_g/chroot_local-includes/etc/ -сюда были положены некоторые файлы, которыми мы дополняем стандартную конфигурацию, например генератор конфигурации Xorg и конфигурационный файл vsftpd.


  • LiveCD/con_g/chroot_sources/xyz-player.chroot -дополнительный APT репозиторий, содержащий 3rd-party пакеты, не являющиеся частью Debian:





deb http://mend0za.xyz.com/debian-aw-display/ ./




Сборка реализована как набор правил, включенных в общий Makefile проекта 5.1.



livecd-repo: $(BUILD_DIR)/$(PLAYER_PACKAGE) $(BUILD_DIR)/$(SWFDEC_PACKAGE)
@test -d $(LIVE_CD_REPO) || mkdir $(LIVE_CD_REPO)
@cp -fv $^ LiveCD/repo
cd $(LIVE_CD_REPO) && apt-ftparchive packages ./ >Packages
gzip <$(LIVE_CD_PACKAGES) >$(LIVE_CD_PACKAGES).gz
bzip2 <$(LIVE_CD_PACKAGES) >$(LIVE_CD_PACKAGES).bz2
livecd: livecd-repo
cd LiveCD && sudo lh_build




Отдельно следует отметить скорость создания LiveCD на основе уже имеющейся инфраструктуры CDD. Используя готовые схемы сборки 3rd-party пакетов deb и CDD (через simple-cdd), дополнительные правила для сборки LiveCD созданы и отлажены за 3 человеко-дня, включая стадию контроля качества (QA) и передачу результата работы (ISO­образа) заказчику.



Распределённая установка с контролем оператором


Техническое задание:





  • автоматическая установка по сети сотни одновременно устанавливаемых устройств

  • контроль человеком-оператором статуса установки устройств, с возможностью останова

  • нет доступа к экранам и клавиатурам устанавливаемых устройств


  • архитектура i386 и сетевые карты, поддерживающие PXE



Реализация:





  • DHCPv3 + TFTP + PXE -сетевая загрузка образов инсталятора (netboot)

  • Отдача preseed по сети: HTTP


  • Серверное ПО (управляющее ПО + интерфейс оператора) на базе CGI (HTTP )

  • Компонент инсталятора udeb, содержащий хуки во все фазы инсталяции

  • Сервер содержит на борту полное зеркало пакетов, необходимых оконечным устройствам

  • Фактически -два дистрибутива с разным набором пакетов и разной процедурой установки, серверный/операторский и клиентский/устройства.



Сценарий установки устройства-клиента:




  1. Запрос сетевой загрузки, сервер получил информацию о MAC ­адресе устройства и обозначил его, как начавшего установку.

  2. Получение загрузочного образа инсталятора netboot и параметров его загрузки. Основной параметр -URL preseed-файла.


  3. Запуск хуков осуществляет связь с контрольным сервером по протоколу HTTP, информирует о текущем статусе инсталяции, и позволяет
    приостановить еј или прервать, в соотвествии с действиями оператора.

  4. По успешном прохождении инсталяции -посылает запрос зарегистрировать устройство как установленное.

  5. После перезагрузки -устанавливает свой статус как Running и отмечается на сервере.



Как можно видеть, реализация требует плотной интеграции целой группы стандартных компонент (Web сервера, TFTP сервера, DHCP сервера, D-I) с группой самостоятельно разработанных компонент (управляющее ПО оператора, хранилище информации о состоянии устройств, репозитории пакетов для двух раздельных дистрибутивов, udeb, модифирующий поведение D-I).



Было создано 3 новых пакета-интегратора: netboot-server, miu-netinstall, management-server, реализующие функционал, необходимый по техническому заданию.


netboot-server



Обычный deb-пакет. Устанавливается на сервер.




  • Содержит настройки DHCP, заменяющий настройки по умолчанию
    на специфичные для проекта


subnet 172.17.0.0 netmask 255.255.0.0 {
# опущена стандартная часть описания подсети
if substring (option vendor-class-identifier, 0, 3) = "d-i" {
filename "http://172.17.0.1/xyz/miu.preseed";
}
else {
filename "pxelinux.0";
}
}




Логика построена в зависимости от идентификатора вендора. Если
сетевые настройки запрашиваются уже запущенным D-I, отдајтся
URL файла preseed. В противном случае осуществляется обычная
сетевая загрузка PXE.




  • дерево файлов для загрузки по tftp

  • настройки Apache 2.2.x, позволяющие клиентской машине получить доступ к репозиторию пакетов и компонент D-I по сети.




Alias /debian-xyz/ /var/lib/xyz-netboot-server/repo/
<Directory "/var/lib/xyz-netboot-server/repo">
Options Indexes FollowSymlinks
</Directory>
Alias /xyz/ /var/lib/xyz-netboot-server/



Благодаря гибкой схеме конфигурирования Apache 2.x в Debian ­настройки оформлены отдельным файлом, укладываемый в

/etc/apache2/conf.d 



miu-netinstall



Компонент udeb для d-i. Загружается в устройство при инсталяции через preseed:



d-i preseed/early_command string anna-install miu-netinstall 



postinstall для этого пакета реализует запрос на разрешение/запрет дальнейшей установки устройства + определение адреса сервера. Содержит также хуки, производящие информирование сервера о стадиях инсталяции и возможности продолжать.



management-server



Содержит ПО пријма запросов от устанавливаемых устройств и ПО оператора. Устанавливается на сервер.



Системная интеграция



Серверный дистрибутив собирается через simple-cdd, так же как и дистрибутив из проекта 5.1. Клиентский дистрибутив фактически содержится в серверном как подмножество пакетов в репозитории CD диска. После инсталяции серверного дистрибутива репозиторий с диска копируется инсталятором на установленную машину и служит пакетной базой для установки клиентских устройств.



Network Attached Storage
14
(NAS) для i386



Портирование существующего продукта с Alt Linux/XScale на Debian/i386.



Техническое задание:



  • Управление функциями NAS через EVMS

    15

  • Поддержка до 4 винчестеров на стадии инсталяции

  • Пользовательский интерфейс (GUI) на WEB+Java

  • Портирование функционала с Alt Linux на Debian



Реализация.




  • Пересборка ядра/модулей ядра в D-I и образов инсталятора


  • Накладывание набора (порядка 15) патчей на ядро

  • Замена стандартного менеджера разделов в D-I (partman) на NAS-специфичный

  • Пакетирование пользовательского интерфейса

  • Добавление поддержки EVMS в D-I



Отличие от проектов, указанных выше (см. 5.1, 5.2, 5.3) -в необходимости глубокой интеграции с Debian-Installer, вплоть до модификации штатного ядра и замены штатного менеджера дисков.



Функционал продукта полностью базируется на использовании EVMS. Все операции с дисковой подсистемой проводятся через Device Mapper

16
+ EVMS. D-I на момент начала работы над проектом содержал только рудиментарные признаки поддержки EVMS, ранее не используемые и исключјнные из релизов незадолго до выхода Sarge.



Детали реализации:





  • заново создан пакет evms-udeb, дающий возможности управлять evms из D-I (библиотеки и утилиты командной строки)

  • компонент partman полностью заменјн на partman-evms, вводящий функционал определения всех доступных дисков и развјртывания
    NAS-массива с их использованием

  • частично портированы части старого инсталятора из Alt Linux, касающиеся развјртывания NAS и добавлены утилиты (awk), необходимые
    для их работы в среде D-I.

  • GUI перепакетирован из RPM в DEB

  • портированы патчи с устаревших версий ядра на современные (касающиеся особенностей функционала продукта)

  • D-I полностью пересобран с модифированным ядром

    18



partman-evms



Наиболее интересны, с точки зрения CDD, следующие фрагменты:


partman-evms/debian/control


Package: partman-evms
Architecture:all
XC-Package-Type: udeb
XB-Installer-Menu-Item: 3999
Depends: di-utils, mdadm-udeb, evms-udeb, evms-utils-udeb, \
mkreiserfs-udeb, reiserfs-modules
Provides: made-filesystems, mounted-partitions, partitioned-harddrives,
created-fstaDescription:
partman replacement with EVMS support
Package: partman-base
Architecture: all
XC-Package-Type: udeb
Depends: partman-evms
Provides: partman, partman-base, partman-auto, partman-md, partman-method, \
partman-filesystem, partman-target, partman-basicfilesystems
Description: partman fake package (do nothing)



XB-Installer-Menu-Item задајт место для запуска partman -непосредственно перед оригинальным partman (4000). Имена пакетов и поля Provides: полностью замещают стандартный компонент, эмулируя его привязку к остальным частям инсталятора. См.
17
для получения дополнительной информации.




partman-evms/debian/postinst содержит код переразбиения дисков согласно штатной разметки NAS как группы RAID-1 разделов на всех существующих дисках. Также осуществляются действия стандартного partman: форматирование разделов, создание /etc/fstab, подключение свопа.



Вся дальнейшая установка (базовая система, пост-инсталяционные настройки) уже работает с корневым разделом под управлением EVMS.




OEM-инсталяция



Часть из используемых пакетов проекта требует ответов пользователя по ходу их установки. Средствами добавления preseed в simple-cdd мы можем заранее задать ответы на них и сохранить инсталяцию "молчаливой":



# omit questions to user
mdadm mdadm/autostart boolean false
mdadm mdadm/initrdstart string none

lilo liloconfig/wipe_old_liloconf boolean true
lilo liloconfig/install_mbr boolean true

nis nis/domain string local

samba-common samba-common/workgroup string local
samba-common samba-common/dhcp boolean false

sun-java5-bin shared/accepted-sun-dlj-v1-1 boolean true
sun-java5-jdk shared/accepted-sun-dlj-v1-1 boolean true
sun-java5-jre shared/accepted-sun-dlj-v1-1 boolean true






В начало


References



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

Воскресенье, 09 Ноября 2008 г. 18:08 + в цитатник
Узнайте, как установить, настроить и протестировать сервер под управлением 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 -qa | grep -i httpd
rpm -qa | grep -i php



После этого вы можете удалить все пакеты, найденные в результате выполнения предыдущих команд:


rpm -e filename




На этом этапе вы должны получить "чистый" дистрибутив Linux, готовый для установки и настройки компонентов.




В начало


Получение и распаковка файлов исходного кода для всех приложений



  1. Перейдите в папку, где хранятся все файлы исходного кода:


    cd /usr/local/src




  2. Получите необходимые вам компоненты:


    wget http://www.php.net/distributions/php-5.1.2.tar.gz
    wget http://apache.osuosl.org/httpd/httpd-2.2.0.tar.gz
    wget http://www.pecl.php.net/get/PDO_INFORMIX-1.0.0.tgz





В нашей установке использовались следующие версии продуктов LAIP:


PHP5.1.2
HTTP-сервер Apache2.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
tar zxf php-5.1.2.tar.gz
tar zxf PDO_INFORMIX-1.0.0.tgz




В начало


Установка Informix и Client SDK


Для установки Informix в вашей Linux-системе выполните следующие шаги:




  1. Проверьте, требуется ли установить для вашей операционной системы какие-либо патчи. Для этого вы можете перейти на страницу Informix Dynamic Server.



  2. Создайте группу и пользователя Informix. Пользователь Informix выступает в роли учетной записи администратора для базы данных Informix. Обеспечьте надежную защиту этой учетной записи. Для создания группы и пользователя Informix выполните следующие шаги (где xxxx – это пароль для пользователя Informix):


    groupadd informix
    useradd -g informix -p xxxx -d /dev/null informix



  3. Создайте установочную директорию. Местоположением по умолчанию является /opt/informix. Последние две команды призваны гарантировать, что владельцем директории будут группа и пользователь Informix:



    su informix mkdir /opt/informix
    chown informix.informix /opt/informix
    chown informix.informix /opt/informix



  4. Настройте все необходимые переменные среды Значением переменной INFORMIXDIR должна быть директория, в которую вы установили Informix. Ниже показано, как использовать значения по умолчанию:


    Bourne Again shell (bash):

    INFORMIXDIR=/opt/informix
    export INFORMIXDIR
    PATH=$PATH:$INFORMIXDIR/bin
    export PATH


    или



    C shell (csh):
    setenv INFORMIXDIR /opt/informix
    setenv PATH ${PATH}:${INFORMIXDIR}/bin



  5. Распакуйте файлы Informix из указанного tar-файла. Если tar-файлы Informix Server и Client SDK находятся в текущей директории, выполните для распаковки следующие команды (предполагая, что имя файла IIF*.tar):


    mv IIF*.tar /opt/informix
    cd /opt/informix
    su informix tar -xvf IIF*.tar



  6. Перейдите к распакованным файлам и запустите установку IDS. Установить IDS можно тремя способами. По умолчанию используется метод с применением консоли. Существуют также графический и "молчаливый" способы установки. Вы можете выбрать любой подходящий вам способ. В этом примере используется метод с использованием консоли:



    ./install_rpm -acceptlicense=yes 


    После запуска скрипта просто следуйте инструкциям на экране, чтобы завершить установку Informix. Убедитесь, что вы используете путь /opt/informix в качестве установочной директории. Флаг принятия условий лицензии следует устанавливать только в том случае, если вы принимаете условия лицензии Informix.



  7. Распакуйте tar-файл Client SDK в директорию /opt/informix.


    mv client*.tar /opt/informix
    cd /opt/informix
    su informix tar -xvf client*.tar



  8. Запустите установочный скрипт для установки Client SDK. После запуска скрипта просто следуйте инструкциям на экране, чтобы завершить установку Client SDK, являющегося компонентом Informix.



    	  ./installclientsdk






В начало


Настройка Informix и Informix Client SDK



  1. Создайте файлы переменных среды, необходимые для запуска и работы сервера Informix. В домашней директории создается файл .informix, содержащий следующие строки:



    Bourne Again shell (bash):

    set INFORMIXDIR=/opt/informix
    set INFORMIXSQLHOSTS=/opt/informix/etc/sqlhosts
    set ONCONFIG=onconfig
    set INFORMIXSERVER=myserver
    set SERVERNUM=1
    set PATH=$INFORMIXDIR/bin:.:$PATH


    или


    C shell (csh):
    setenv INFORMIXDIR /opt/informix
    setenv INFORMIXSQLHOSTS /opt/informix/etc/sqlhosts
    setenv ONCONFIG onconfig
    setenv INFORMIXSERVER myserver
    setenv SERVERNUM 1
    setenv PATH $INFORMIXDIR/bin:.:$PATH




  2. Добавьте ваш сервер в файл sqlhosts. Этот файл находится в директории /opt/informix/etc. Вы должны добавить в файл sqlhosts имя INFORMIXSERVER, указанное ранее в переменных окружения. Строка добавляется в следующем формате:


    dbservername nettype hostname servicename [options]



    Вот что было добавлено в нашем случае:


    myserver onsoctcp myserver port_alias


    Указанный порт также должен быть открыт в вашей системе. В этом примере он был открыт в файле /etc/services. Ниже приведен пример строки, добавленной в файл services:



    port_alias 8201/tcp



  3. Создайте файл onconfig. Этот файл должен располагаться в директории /opt/informix/etc. В ней уже должен находиться стандартный файл onconfig с именем onconfig.std. Для нашего примера достаточно поместить в этот файл строки, приведенные ниже. В вашем конкретном случае вам могут потребоваться дополнительные переменные, или вы можете использовать не все переменные, перечисленные ниже. Итак, файл onconfig содержит следующие строки:


    DBSERVERNAME myserver
    DUMPDIR /tmp
    LOGDIR /opt/informix/logdir
    MSGPATH /opt/informix/logdir/online.log
    PHYSDBS rootdbs
    ROOTNAME rootdbs
    ROOTPATH /opt/informix/logdir/rootdbs
    ROOTSIZE 30000


    Переменная DBSERVERNAME – это уникальное имя, назначенное определенному экземпляру сервера базы данных. DUMPDIR – директория, в которую сервер выгружает общую память, а также сообщения. LOGDIR – это директория для хранения журналов экземпляра IDS. MSGPATH содержит полный путь к файлу регистрации сообщений. PHYSDBS – это имя пространства dbspace, содержащего физический журнал. ROOTNAME – имя корневого пространства root dbspace. ROOTPATH – полный путь к начальному фрагменту пространства root dbspace. ROOTSIZE – размер начального фрагмента пространства root dbspace.



  4. Добавьте указанные выше директорию для хранения журналов и корневое пространство. Для конфигурации нашего примера были добавлены следующие строки:



    su informix mkdir /opt/informix/logdir
    su informix chmod 777 /opt/informix/logdir
    cd /opt/informix/logdir
    su informix touch rootdbs
    su informix chmod 660 rootdbs
    su root chown informix.root rootdbs



  5. Проверьте, что все работает правильно.



    1. Попробуйте запустить сервер:


      cd /opt/informix/bin
      oninit -i




    2. Убедитесь, что сервер запустился корректно, выполнив следующую команду:


      onstat -



    3. Если вы увидите сообщение "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



Для установки Apache с поддержкой динамически загружаемых модулей выполните следующие шаги:


cd /usr/local/src/httpd-2.2.0/

./configure \
--prefix=/usr/local/apache \
--enable-shared=max \
--enable-module=rewrite \
--enable-module=so

make
make install




  1. Для того чтобы файлы с расширением .php обрабатывались корректно, отредактируйте файл http.conf, который находится в директории /usr/local/apache/conf/httpd.conf. Найдите в этом файле следующие строки:



    #AddType application/x-httpd-php .php


    #AddType application/x-httpd-php-source .phps



  2. Если вы нашли вышеуказанные строки, удалите в них символы #. Если строки не найдены, добавьте их в файл без символов #. Это позволит Apache корректно обрабатывать php-файлы.



  3. Редактируя файл httpd.conf в директории /usr/local/apache/conf, вы можете более тонко настроить сервер Apache. В Интернете существует огромное количество документации по этой теме.





В начало


Установка и настройка PHP


Для установки PHP выполните следующие шаги:



  1. Скопируйте папку PDO_INFORMIX в поддиректорию exp установки PHP:


    cd /usr/local/src/php-5.1.2/ext
    cp -R ../../PDO_INFORMIX-1.0.0 pdo_informix




  2. Сконфигурируйте PHP с поддержкой расширения PDO и выполните команду make:


    cd /usr/local/src/php-5.1.2

    ./buildconf --force

    ./configure --with-apxs2=/usr/local/apache/bin/apxs \
    --disable-debug \
    --disable-ftp \
    --disable-inline-optimization \
    --disable-magic-quotes \
    --disable-mbstring \
    --enable-wddx=shared \
    --enable-xml \
    --with-dom \
    --with-regex=system \
    --with-xml \
    --with-jpeg-dir=/usr/lib \
    --with-zlib-dir=/usr/lib \
    --with-zlib \
    --without-pdo-sqlite \
    --without-iconv \
    --without-sqlite \
    --enable-shared \
    --enable-pdo \
    --with-pdo-informix=/opt/informix

    make
    make install

    cp php.ini-dist /usr/local/lib/php.ini



  3. Теперь можно проверить правильность установки PHP. Для этого выполните следующую команду:


    php -m




  4. Эта команда должна вывести сведения о модулях PDO и pdo_informix. Если эти модули не включены в вывод, значит команды buildconf, configure, make или make install сработали не так, как ожидалось.


    У вас есть возможность сконфигурировать модуль pdo_informix после настройки самого PHP.




  5. Вы можете скомпилировать модуль pdo_informix отдельно, но для этого потребуется использовать команду phpize из установочной директории PHP. Вам не нужно выполнять этот шаг, если вы сконфигурировали или скомпилировали модуль pdo_informix во время конфигурации или компиляции PHP.


    cd pdo_informix
    phpize
    ./configure
    make



  6. Добавьте в файл php.ini необходимые расширения. Этот файл находится в директории /usr/local/lib/php.ini. В файле php.ini указывается директория загружаемых расширений. Обычно эта директория расположена после следующей строки:


    ; Directory in which the loadable extensions (modules) reside.


    В нашем примере нужные нам строки выглядят следующим образом:


    ; Directory in which the loadable extensions (modules) reside.
    extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20050922/"




Еще одно изменение, которое необходимо внести в файл php.ini – это определение расширений PDO и pdo_informix. Сведения о них находятся в разделе Dynamic Extensions файла php.ini. Если эти расширения были созданы в качестве общих модулей, вам необходимо скопировать их в вышеуказанную директорию расширений и разрешить в файле php.ini, как показано ниже:


extension=pdo.so
extension=pdo_informix.so





В начало


Проверка работы созданного Web-сервера


Для проверки работы созданного Web-сервера выполните следующие шаги:



  1. Запустите сервер Apache. Все, что для этого нужно - выполнить следующую команду (под учетной записью root):


    /usr/local/apache/bin/apachectl start


    Откройте ваш любимый Web-браузер и наберите в адресной строке localhost. Вы должны увидеть начальную страницу Apache. Это будет означать, что Apache запустился.




  2. Убедитесь, что PHP работает с Apache. Для этого вам необходимо отредактировать файл index.html, который отображается в вашем браузере. Расположение этого файла зависит от того, куда вы установили Apache. В нашем примере файл находится в директории /usr/local/apache/htdocs/index.html.


    Сотрите файл index.html и замените его следующим файлом (с именем index.php):


    <html>
    <body>
    <?php
    echo "PHP and Apache are playing nicely!";
    ?>
    </body>

    </html>


    После этого, когда вы откроете измененную страницу (http://localhost/index.php), вы должны увидеть текст PHP and Apache are playing nicely!. Если вместо этого вы видите код PHP, значит, настройка совместной работы Apache и PHP не удалась.



  3. Проверьте, что Informix запущена и вы можете запросить информацию. Для этого выполните следующую команду:


    ps -aef | grep oninit



    Если найдены какие-либо процессы, значит, Informix работает. Если же процессы не обнаружены, запустите Informix с помощью команды, указанной ранее в этом руководстве. Инструмент, который использует Informix для создания или удаления баз данных и таблиц, а также для вставки и удаления данных – это dbaccess. Вы можете запустить dbaccess из следующей директории:


    /opt/informix/bin/dbaccess



    Не забудьте сделать следующее:



    1. Добавьте пользователей, которым необходим доступ к таблице 'informix'.sysauth, в базу данных sysuser.

    2. Для проверки установки вашего сервера создайте новую базу данных и добавьте в нее таблицу с данными.



    Если вы не знакомы с утилитой dbaccess, вы можете найти документацию по работе с ней в Интернете.



  4. Убедитесь, что PHP и PDO Informix работают корректно. Для этого перейдите в папку для документов Apache по умолчанию (/usr/local/apache/htdocs) и создайте в ней файл test.php. Содержимое файла test.php приведено ниже:


    <?php

    $db = new PDO("informix:host=servername.domain.com; service=8201;
    database=test_db; server=testserver; protocol=onsoctcp;
    EnableScrollableCursors=1;", "testuser", "testpass");

    print "Connection Established!\n\n";

    $stmt = $db->query("select * from test_table");
    $res = $stmt->fetch( PDO::FETCH_BOTH );
    $rows = $res[0];
    echo "Table contents: $rows.\n";

    ?>



    Переменные в строке подключения соответствуют потребностям нашей системы. Выберите переменные и их значения, чтобы они подходили для вашей системы и вашей среды. Первая строка – это строка подключения к базе данных Informix. Структура informix: необходима для открытия строки подключения. Значением переменной host является просто имя хоста, на котором запущен сервер. Значением переменной service является номер порта, открытого для вашей базы данных (/etc/services). Переменная database содержит имя базы данных, которую вы создали ранее. Переменная server содержит имя экземпляра базы данных, созданного ранее. Переменная protocol – это тип протокола, который вы указали в файле /etc/sqlhosts. Остальные параметры говорят сами за себя. Последние два параметра объекта PDO – это имя пользователя и пароль. Убедитесь, что пользователь был добавлен в базу данных sysuser, как это было описано выше.



    Когда вы откроете Web-страницу test.php, вы должны увидеть строки Connection Established! и Table Contents, за которыми следует содержимое вашей таблицы.




Поздравляем! Теперь ваша система LAIP готова к использованию!


Метки:  

Синтаксис .htaccess

Воскресенье, 09 Ноября 2008 г. 17:49 + в цитатник
Показ разных страниц, в зависимости от 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 (.*)\cmd.exe http://www.microsoft.com1

[ оглавление ]



Как сделать стартовой другую страницу?

Что бы поменять страницу, которая будет показываться при обращении к директории, пишем:
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://hostforum.ru
http://phpdev.com
http://webhowto.ru

Метки:  


Процитировано 1 раз

Для чего служит .htaccess

Воскресенье, 09 Ноября 2008 г. 17:24 + в цитатник

Для чего служит .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

Воскресенье, 09 Ноября 2008 г. 17:00 + в цитатник
Защита сайта с помощью .htaccess и .htpasswd






В данной статье будет рассмотрен самый простой и доступный способ защиты - базовая аутентификация. Аутентификация - процесс, с помощью которого проверяется, что некто является именно тем, за кого он себя выдает. Как правило, проверка включает в себя ввод имени и пароля.
Рассмотрим, как работает базовая аутентификация. При обращении посетителя в защищаемую директорию, сервер Apache в ответ на запрос посылает заголовок с кодом 401 (401 authentication required header). Браузер посетителя принимает заголовок с кодом 401 и выводит окно с полями для ввода имени пользователя и пароля. После ввода имени и пароля эти данные отсылаются назад серверу, который проверяет имя пользователя на предмет нахождения в специальном списке, а пароль на правильность. Если все верно, то посетитель получает доступ к ресурсу. Вместе с заголовком браузеру посылается специальной имя, называемое областью действия. Браузер кэширует не только имя и пароль, чтобы передавать их при каждом запросе, но и область действия. Благодаря этому, ввод имени и пароля в защищаемой директории осуществляется только раз. В противном случае их необходимо было бы вводить при каждом запросе к защищаемой директории. Кэширование параметров аутентификации (имя, пароль, область действия), обычно осуществляет только в пределах одного сеанса.

* Примечание :

При базовой аутентификации имя пользователя и его пароль передаются в сеть в открытом виде в течении всего сеанса, когда посетитель работает с защищенной директорией. Хакер может перехватить эту информацию, используя сетевой анализатор пакетов. Данный вид аутентификации не должен использоваться там, где нужна реальная защита коммерческо-ценной информации.


WEB-сервер Apache поддерживает еще один вид защиты - digest-аутентификацию. При digest-аутентификации пароль передается не в открытом виде, а в виде хеш-кода, вычисленному по алгоритму MD5. Поэтому пароль не может быть перехвачен при сканировании трафика. Но, к сожалению, для использования digest-аутентификации необходимо установить на сервер специальный модуль - mod_auth_digest. А это находится только в компетенции администрации сервера. Также, до недавнего времени, digest-аутентификация поддерживалась не всеми видами браузеров.


Для того чтобы защитить сайт, нужно выполнить следующую последовательность действий: создать файл с паролями, переписать его на сервер, создать файл .htaccess и тоже переписать его на сервер.
Для организации защиты понадобится.


1. WEB-сайт и FTP-доступ к нему.

2. Права на создание файлов .htpaccess и организацию защиты с помощью них.

3. Утилита генерации паролей htpasswd.exe

Проверка работы файла .htaccess на сервере

Для того чтобы проверить есть ли у Вас права на организацию защиты с помощью файлов .htaccess создайте текстовый файл с именем .htaccess (первым символом идет точка, расширение отсутствует).


* Примечание :

Удобно создавать файлы .htaccess с помощью встроенного редактора в оболочках Far, WindowsCommander, TotalCommander и т.п., а также в редакторе Блокнот.

Чтобы блокнот не подставлял автоматически расширение txt, в диалоге сохранения в выпадающем списке "тип файла" следует выбрать опцию "Все файлы".

Перед тем как сохранить файл, впишите в него следующие строки:
AuthType Basic

AuthName admin

require valid-user

Затем, через FTP-доступ, перепишите файл .htaccess на сайт, в ту директорию, которую вы хотите защитить.

* Примечание :

Действие файлов .htaccess распространяется не только на ту директорию, где лежит файл, но и на все поддиректрии, лежащие уровнем ниже.

Далее через браузер обратитесь к этой директории. Если Вы защищаете директорию admin и переписали туда файл .htaccess, то для проверки Вам следует вписать в адресную строку браузера следующий URL: http://www.mysite.ru/apanel/.

Если после этого Вам открылся запрос на ввод логина и пароля, то тестирование прошло успешно и можно продолжать защиту директории.

Если вы все сделали правильно, но окошко ввода пароля не появилось, то это значит, что настройки сервера запрещают Вам использовать файлы .htaccess для защиты директорий. Для решения данного вопроса Вам следует связаться с администрацией сервера, либо использовать другой тип защиты.

После того, как было выяснено, что файлы .htaccess работают, следует удалить с сайта только что написанный тестовый файл.


Создание файла с паролями .htpasswd

Файл с паролями создается утилитой htpasswd.exe. Если у Вас на машине установлен WEB-сервер Apache, то данная утилита находится в директории с установленным Apache-ем в подкаталоге bin.

Для работы с утилитой htpasswd.exe необходим интерфейс работы с командной строкой. Интерфейсом работы с командной строкой обладают такие программы как Far, WindowsCommander и т.п. Здесь будет рассмотрена работа с командной строкой с помощью утилиты , которая входит в поставку Windows 2000/XP и т.п.

Нажмите "Пуск"->"Выполнить", введите в строку ввода и нажмите ОК. Вам откроется окно утилиты .

Далее необходимо перейти в директорию, где находится утилита htpasswd.exe. Допустим, сервер Apache установлен в директории с:/Apache2, тогда введите в командную строку команду: cd../../apache2/bin и нажмите ввод.

Вы перешли в директорию с:Apache2 in. Теперь нужно дать команду на создание файла с паролем.

Введите в командную строку следующее :

htpasswd -cm .htpasswd admin



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

* .htpasswd — имя файла с паролями (можете использовать любое имя).

* admin — имя посетителя, которому будет разрешен доступ в закрытую область сайта.


В ответ, должен появится запрос на ввод пароля и его повтор. Если все правильно, то в завершении появится сообщение: Adding password for user admin. И в директории c:Apache2 in появится файл .htpasswd, к котором будет находиться строка с именем пользователя и хеш-кодом его пароля. Для того, что бы в тот же файл .htpasswd добавить еще одного пользователя следует убрать ключ -c из команды запуска утилиты htpasswd.exe

htpasswd -m .htpasswd admin



* Примечание :

Если файл с паролями не был создан, то возможно, некоторые ключи утилиты не поддерживаются в Вашей операционной системе. Например, иногда не поддерживается ключ m. В этом случае, Вам нужно ввести htpasswd -c .htpasswd admin
Для того, чтобы посмотреть ключи и параметры работы утилиты введите htpasswd.exe /? Вам будет выдано описание интерфейса.
Итак, файл с паролями создан. Теперь Вам необходимо переписать его на сервер. Файлы с паролями очень желательно класть выше корневой директории сайта — туда, куда не будет доступа посетителям.
Если это невозможно, то файлы с паролями следует обязательно защитить. Это можно сделать с помощью файлов .htaccess. Чтобы защитить файлы с паролями создайте файл со строками, представленными в следующем листинге.
deny all


И положите его в ту директорию, где находится Ваш файл с паролями. Теперь посетители сайта не смогут получить к нему доступ.
Файл с паролем создан и защищен от несанкционированного доступа. Теперь необходимо создать файл .htaccess, который будет использоваться в защищаемой директории.


Создание файла .htaccess

Для защиты директории могут использоваться следующие директивы :

* AuthType — Тип используемой аутентификации. Для базовой аутентификации эта директива должна иметь значение: Basic

* AuthName — Имя области действия аутентификации. Текст, помогающий посетителю понять, куда он пытается получить доступ. Например, может быть написано: "Private zone. Only for administrator!"

* AuthUserFile — путь к файлу с паролями (.htpasswd).

* AuthGroupFile — путь к файлу групп, если он существует.

* Require — Одно или несколько требований, которые должны быть выполнены для получения доступа к закрытой области.


Пример файла .htaccess

AuthType Basic

AuthName "Private zone. Only for administrator!"

AuthGroupFile /usr/host/mysite/group

AuthUserFile /usr/host/mysite/.htpasswd

require group admins

Следует более подробно описать директивы AuthUserFile и AuthGroupFile. В них прописываются абсолютные пути к соответствующим файлам от корня сервера.

Внимание ! Относительные пути работать не будут !

Путь от корня сервера, можно узнать, спросив у администрации сервера, либо можно попробовать выяснить его самим. Для этого выполните функцию phpinfo(). На экран будет выведена фиолетовая таблица. Значение абсолютного пути от корня сервера можно посмотреть в переменных: doc_root, open_basedir, DOCUMENT_ROOT.
Директива Require определяет кому разрешен доступ к закрытой области.

Например :

* require valid-user — разрешен доступ всем прошедшим проверку

* require user admin alex mango — разрешен доступ только посетителям с именами admin, alex, mango. Естественно, они должны пройти аутентификацию.

* require group admins — разрешен доступ всем пользователям из группы admins

Метки:  

Torrent сервер для раздач файлов

Четверг, 06 Ноября 2008 г. 21:07 + в цитатник

 на платформе 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",



Мы подключили к серверу lighttpd модуль реализующий поддержку SCGI.

Затем в конец файла добавте:
code:


scgi.server = (



  "/RPC2" =   >
            ((
              "host" =   > "127.0.0.1",
              "port" =   > 5000,
              "check-local" =   > "disable"
            ))
)




Настроили модуль SCGI.

Также могут быть интересны такие значения как:

#Порт который использует сервер. Если не задано используется 80.
server.port = 81

#Сетевой интерфейс который занимает сервер. Если не задано сервер пытается занять все. У меня была проблема - при указании #явного интерфейса сервак переставал слушать сетевую петлю и не мог соединится с rtorrent'ом. Способа заставить явно слушать его 2 #интерфейса я не нашёл.
server.bind = 192.168.0.1

#Настройка безопасности. Запрещает доступ к перечисленным типам файлов. Рекомендую поставить, иначе у вас утащат базу данных с #паролем для доступа к wtorrent прямо из-под носа =)
url.access-deny = ("~", ".inc", ".db", ".tpl.php", ".cls.php",)

Ну и поставим lighttpd на загрузку при старте системы и заодно запустим его:

# rc-update add lighttpd default
# /etc/init.d/lighttpd start

Настройка rtorrent.

Конечно у rtorrent'а масса интересных настроек, но в данный момент нас интересует только порт, который будет слушать сокет, а посему:

$ echo "scgi_port = 127.0.0.1:5000" > > ~/.rtorrent.rc

Ещё нам понадобится чтобы rtorrent работа как демон, для этого я использовал start-stop-daemon.

# vim /etc/init.d/rtorrentd

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 $?
}




# vim /etc/conf.d/rtorrentd


code:


#Пользователь от которого будет запускаться rtorrent. От Root'а лучше не запускать.
USER="sb0y"
# Сокет rtorrent'а.
SOCKET="/tmp/rtorrent.dtach"


Ставим на автозагрузку и запускаем:

# chmod +x /etc/init.d/rtorrentd
# rc-update add rtorrentd default
# /etc/init.d/rtorrentd start

Установка и настройка wTorrent



Мы дошли до ключевой стадии - web-интерфейса нашего торрент-клиента :)

# cd /var/www/localhost/htdocs
# rm *
# svn co svn://wtorrent-project.org/repos/trunk/wtorrent/
# cp -R wtorrent/* . && rm -R wtorrent
# chmod 0777 -R * -R
# cp conf/sample.home.conf.php conf/home.conf.php
# vim conf/home.conf.php

home.conf.php - это конфигурационный файл wtorrent. Отредактируйте его примерно так(я указываю только те секции, значение которых менял):

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/');



Теперь запускайте броузер и открывайте http://192.168.0.1:81/install.php и если всё хорошо, вам предложат добавить нового пользователя.

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

Настройка vsftpd.

# vim /etc/vsftpd/vsftpd.conf

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



Эта настройка вешает сервак на все доступные интерфейсы с анонимным доступом без прав записи.

Правда остаётся ещё одна проблема - демон vsftpd стартует в chroot-окружении под пользователем "ftp", у которого нет доступа никуда кроме папки /home/ftp. Это одна из мер повышенной безопасности ftp-сервера, но Unix не был бы Unix'ом если бы его пластичная архитектура не позволяла бы хранить файлы не только в /home/ftp:

# mkdir /mnt/hdc1/torrents
# mkdir /home/ftp/torrents
# chown sb0y:sb0y -R /mnt/hdc1/torrents
# chmod 775 -R /mnt/hdc1/torrents
# vim /etc/fstab

code:


[...]
/mnt/hdc1/torrents /home/ftp/torrents none ro,bind 0 0


# mount -a


Позднее ещё опробую для этой задачи NFS и если результат меня удивит дополню статью. На момент написания этого текста мне казалось, что для того чтобы тягать с сервера фильмы по гигабайту больше всего подходит FTP.



Заключение.

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

Метки:  

обновление документации к GIMP.

Четверг, 06 Ноября 2008 г. 20:29 + в цитатник

 



Вышло обновление документации к GIMP. Документации на русском языке стало больше, обновлена краткая справка по программе.



Скачать

GIMP User Manual 2.4.1

Метки:  

Ubuntu LiveCD с помощью Remastersys

Четверг, 06 Ноября 2008 г. 20:27 + в цитатник
C помощью Remastersys можно сделать две вещи: 1. Полный бекап своей системы, включая персональные данные, и создать его в виде LiveCD или DVD для последующей инсталляции. 2. Сделать свой дистрибутив на основе Ubuntu для себя или поделиться им с кем-нибудь. Установка Remastersys в Ubuntu Добавляем репозиторий в /etc/apt/sources.list sudo gedit /etc/apt/sources.list и вносим следующую строчку: # Remastersys deb http://www.remastersys.klikit-linux.com/repository remastersys/ Сохраняем файл. Обновляем source list sudo apt-get update Устанавливаем sudo apt-get install remastersys Дожидаемся полной инсталляции. Запуск Remastersys sudo remastersys Remastersys команды sudo remastersys backup|clean|dist [cdfs|iso] [filename.iso] Remastersys примеры 1) создаем livecd/dvd бекап нашей системы sudo remastersys backup 2) создаем livecd/dvd бекап и образ диска custom.iso sudo remastersys backup custom.iso 3) чистим временные файлы remastersys sudo remastersys clean 4) создаем дистрибутив livecd/dvd из нашей системы sudo remastersys dist 5) создаем дистрибутив livecd/dvd только из файловой системы sudo remastersys dist cdfs 6) создаем дистрибутив с именем custom.iso, если cdfs уже сделали sudo remastersys dist iso custom.iso Создание ISO образа sudo remastersys dist Эта команда создаст образ iso с называнием customdist.iso в каталоге / home / remastersys . Опция dist позволяет не включить в образ ваши личные папки (например, / home / user). Возможно в ходе процесса вам придется вставить установочный диск Ubuntu. процесс создания образа идет примерно так: […] 92.16% done, estimate finish Wed DEC 28 15:31:25 2007 93.39% done, estimate finish Wed DEC 28 15:31:25 2007 94.62% done, estimate finish Wed DEC 28 15:31:24 2007 95.85% done, estimate finish Wed DEC 28 15:31:24 2007 97.08% done, estimate finish Wed DEC 28 15:31:25 2007 98.31% done, estimate finish Wed DEC 28 15:31:25 2007 99.54% done, estimate finish Wed DEC 28 15:31:25 2007 Total translation table size: 2048 Total rockridge attributes bytes: 3950 Total directory bytes: 9094 Path table size(bytes): 54 Max brk space used 0 406890 extents written (794 MB) В каталоге /home/remastersys/ создастся образ customdist.iso, который можно буде записать на болванку. Если размер образа более 700Мб, то его можно записать на DVD болванку Чистим После того как образ протестирован, записан и он больше не нужен выполняем sudo remastersys clean удалятся все временные файлы и образ диска в директории /home/remastersys.



Процитировано 1 раз

OpenOffice.org 3.0 Pro от Инфра ресурс

Четверг, 06 Ноября 2008 г. 20:26 + в цитатник


Вышел релиз 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 содержит целый ряд улучшений по сравнению с базовой, ванильной сборкой, наиболее интересные из которых перечислены ниже:



  • Улучшения Writer:
    добавлен альбомный стиль страницы в стилист страниц для упрощения создания сложных документов;
  • Улучшения Calc:
    улучшена совместимость с MS Office, добавлена поддержка защиты листов/книг Excel с паролем;
    улучшена эргономика управления множественным выделением листов, щелчок по любому из листов выделенного диапазона отменяет множественное выделение;
    добавлена возможность отключения отображения сетки разметки ячеек - меню (Вид->Сетка);
  • Улучшения Chart:
    добавлена возможность вращения подписей данных в диаграммах на произвольный угол относительно горизонта;
  • Интероперабельность:
    добавлена поддержка диалогов открытия/сохранения ODMA (Open Document Management API), что упрощает интеграцию приложений с системами управления документооборотом;
  • Интеграция:
    наиболее интересные по мнению компании «Инфра-Ресурс» расширения интегрированы в инсталлятор;
  • Интернационализация:
    полная поддержка проверки турецкой орфографии.


    Вышел релиз 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 содержит целый ряд улучшений по сравнению с базовой, ванильной сборкой, наиболее интересные из которых перечислены ниже:
     
  • Улучшения Writer:
    добавлен альбомный стиль страницы в стилист страниц для упрощения создания сложных документов;
  • Улучшения Calc:
    улучшена совместимость с MS Office, добавлена поддержка защиты листов/книг Excel с паролем;
    улучшена эргономика управления множественным выделением листов, щелчок по любому из листов выделенного диапазона отменяет множественное выделение;
    добавлена возможность отключения отображения сетки разметки ячеек - меню (Вид->Сетка);
  • Улучшения Chart:
    добавлена возможность вращения подписей данных в диаграммах на произвольный угол относительно горизонта;
  • Интероперабельность:
    добавлена поддержка диалогов открытия/сохранения ODMA (Open Document Management API), что упрощает интеграцию приложений с системами управления документооборотом;
  • Интеграция:
    наиболее интересные по мнению компании «Инфра-Ресурс» расширения интегрированы в инсталлятор;
  • Интернационализация:
    полная поддержка проверки турецкой орфографии.

Метки:  

Установка Picasa 3.0 beta в Ubuntu

Четверг, 06 Ноября 2008 г. 20:23 + в цитатник


Linux версия популярного менеджера фотографий Picasa базируется на использовании Wine, для работы с цифровыми камерами используется библиотека libgphoto2, поддерживается интеграция в десктоп окружения Gnome и KDE.


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



Установка Picasa 3.0 beta в Ubuntu

Необходимо получить ключ к репозиторию 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


и добавляем следующую строку:


deb http://dl.google.com/linux/deb/ testing non-free


сохраняем файл.



Обновляем список доступных пакетов командой:



 sudo apt-get update


Устанавливаем менеджер фотографий



 sudo apt-get install picasa
отпавить с помощью email кому-нибудь для печати создать pdf-документ из этой новости

Метки:  


Процитировано 1 раз

нечто неординарное

Пятница, 31 Октября 2008 г. 19:26 + в цитатник
Это цитата сообщения sudosu [Прочитать целиком + В свой цитатник или сообщество!]

Неизвестный туалет, неизвестно где.
Неизвестный туалет, неизвестно где.

Метки:  

Системы со свободным ПО обходятся гораздо дешевле, чем предполагалось

Пятница, 31 Октября 2008 г. 00:04 + в цитатник
Бывший шеф IT-отдела МИДа Германии, а ныне обыкновенный дипломат Рольф Шустер выступил с сенсационными заявлениями на проходящей в Малаге конференции OSWC.

Шустер отмечает, что обслуживание компьютера со свободным ПО обходится МИДу примерно на 2000€ в год дешевле, чем обслуживание проприетарных систем. (в первом случае около 1000€ в год, во втором, соответственно, более 3000).

В настоящее время 4000 компьютеров (из 11000) министерства работают под управлением ОС GNU/Linux. Тем самым почти половина из 230 немецких консульств и посольств переведены на свободное ПО. Переход должен завершиться к середине будущего года.

Также Шустер не забывает упомянуть и о трудностях, возникших при переходе на СПО. В частности, в посольстве в Японии возникла проблема с шрифтами в ОpenОffice. Немного сложнее было побороть сопротивление 200 сотрудников IT-отдела, многие из которых ничего не слышали о Linux. Бунтари, однако, были направлены на курсы, где они быстро распознали преимущества СПО.

>>> Подробности.

Метки: opensource, история успеха, конференция


Метки:  

Get Slack

Четверг, 30 Октября 2008 г. 19:10 + в цитатник
Order the latest version of
Slackware Linux on CD-ROM (6 CDs in all), or the whole distribution on
a single DVD from The Slackware Store.

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.



Метки:  

Я из шредера ушел, а под рутом не зашел(

Четверг, 30 Октября 2008 г. 18:58 + в цитатник
Картинка 4 из 20



Метки:  

Unix (курс молодого бойца)

Четверг, 30 Октября 2008 г. 18:48 + в цитатник

Несколько простейших команд Unix (курс молодого бойца)



1.1. Система Unix различает БОЛЬШИЕ и малые буквы, и к этому
можно привыкнуть.

1.2. Если вы уничтожили какой-нибудь файл, то никаких проблем с
его восстановлением у вас не будет. Потому что восстановить
уничтоженный файл в системе Unix НЕВОЗМОЖНО. В Unix отсутствует
команда unerase, и к этому тоже нужно привыкнуть. Вирусы и
антивирусы в Unix тоже отсутствуют. Так что пока хоть этой
проблемы у администратора машины не будет.

1.3. В имени файла директории отделяются от последующей части
символом "/". (Билл Гейтс тоже хотел, чтоб у него в MSDOS все
как в Unix было, вот и взял символ "\" - перепутал - с кем не
бывает.)

Если имя начинается со слэша - значит, это полное
маршрутное имя.Читать далее

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

man имя_интересующей_вас_команды
man -k ключевое_слово # список команд, относящихся к ...

Для того, чтобы срабатывала команда man -k, файлы докуменации должны
быть предварительно проиндексированы. Достигается это командой

catman -w

    2.17 who Кто работает в системе.




who - этими командами можно узнать, кто вы такой
who am i и кто еще работает в системе
finger
last | more
id
man -k who - сообщит все возможные команды, которыми можно
узнать, кто и что делает в системе.

	        
	        
	        

Метки:  

linux без привязки к дистрибу,книга

Четверг, 30 Октября 2008 г. 18:39 + в цитатник
Это цитата сообщения Humiliating [Прочитать целиком + В свой цитатник или сообщество!]

Linux без привязки к дистрибутиву - 530 команд



Команды Linux. Справочник Linux
Название: Команды Linux. Справочник
Автор: Скловская С. Л.
Издательство: ДиаСофтЮП
ISBN: 5-93772-113-6
Год: 2004
Формат: DJVU
Страниц: 848
Язык: Русский






Описание:
Книга содержит свыше 530 команд: классических и совсем новых, популярных и не очень, незаслуженно забытых или не нашедших у нас должного распространения. Их описания расположены в алфавитном порядке. Все команды также класифицированы по тематическим направлениям и представлены в разделе Типовые операции.
Третье издание дополнено новыми командами по самым разным направлениям. Большое внимание уделено файловым системам ext3 и ReiserFS и связанным с ними командам.
Справочник расчитан на пользователей Linux без привязки к определенному дистрибутиву, а также на пользователей FreeBSD и ОС Unix.
http://knigka.ifolder.ru/1784714

Метки:  

Поиск сообщений в sudosu
Страницы: 6 5 4 3 2 [1] Календарь