Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Программирование на PHP" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Сентябрь 2002 → | ||||||
1
|
||||||
---|---|---|---|---|---|---|
2
|
4
|
6
|
7
|
8
|
||
9
|
10
|
11
|
12
|
13
|
14
|
|
18
|
19
|
20
|
21
|
|||
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
Статистика
-1 за неделю
Ставим Oracle по-тихому...
Информационный Канал Subscribe.Ru |
Gregory Sitnin: Developer's book
Ставим Oracle по-тихому...
Иногда возникает необходимость поставить на клиентскую машину Oracle. Часто так делают, устанавливая Oracle Client вместе со своим приложением. Готов биться об заклад, что те, кто ставил Oracle (не важно, клиента или сервер) руками при помощи его инсталлятора, не догадываются, что этот самый простенько выглядящий Oracle Universal Installer (OUI) является довольно мощным средством для инсталляции не только самого Oracle, но и любого другого программного обеспечения.
Но речь сегодня не об этом. Вернее, об этом, но с другой стороны. Кроме своих явных функций, OUI предоставляет возможность установки ПО в тихом режиме. Данный режим установки отличается от обычного тем, что все настройки инсталлятору передаются при помощи специального файла ответов, а не запрашиваются у пользователя. Используя тихий режим установки можно установить Oracle, даже не показав заставки инсталлятора, тем не менее, употребив всю его мощь. Тихий режим установки крайне полезен, также, когда Oracle необходимо развернуть на несколько компьютеров и параметры установки при этом должны быть одинаковы.
Также хочу отметить, что эта функция работает, как под Windows, так и под Unix, с небольшими различиями, о которых я расскажу ниже.
Как организован файл ответов
По своему внутреннему устройству файл ответов очень похож на INI-файлы Windows. Он также поделен на секции, имена которых записываются в квадратных скобках. К примеру:
[GENERAL]
Всего секций четыре: General, Include, Session и Components.
Переменные в секциях файла ответов записываются в следующем формате:
<имя> = <рекомендация> : <значение>
Значения переменных могут быть четырех типов: Число, Булево значение, Строка и Список строк.
Булева переменная может принимать значения "true" и "false" (без кавычек), строка должны быть записана в двойных кавычках, а список строк должен выглядеть, как записанные через запятую строковые значения, обрамленные в пару фигурных скобок. Приведу пример самого сложного типа данных - списка строк:
{"value 1", "value 2"}
Рекомендацией в OUI характеризуется тип переменной. Рекомендаций существует два вида: Default - переменной задается значение по-умолчанию и Forced - переменной задается безусловное значение. Рекомендация Default, будучи примененной, вызовет диалог настройки соответствующего параметра, установив его значение в указанное. При применении рекомендации Forced диалог не вызывается, а применяется значение, заданное в файле ответов.
Если рекомендация не указана, то применяется тип рекомендации Forced.
Приведу пример одной корректной строки из файла ответов, созданной по всем вышеописанным правилам (попробуйте сами охарактеризовать строку):
InstallType=Default:"Minimum"
В файле ответов могут содержаться комментарии, которые начинаются с символа "#" (решетка, фунт, hash). В комментариях можно писать все, что душе угодно, однако, Oracle рекомендует писать в них описания переменных, их тип и возможные значения. Как всегда, приведу пример:
#TopLevelComponent; StringList, Used in Dialog TopLevelComponent={"Demo", "1.0"}
Секция файла ответов "General"
Данная секция является первой и в ней содержится всего один параметр. Это - номер версии файла ответов. Формат:
[GENERAL] RESOPONSEFILE_VERSION = <version>
Секция файла ответов "Include"
В данной секции прописываются файлы ответов, которые вы хотите включить, как составные части вашего файла ответов. Данная секция не является обязательной.
Пример:
[INCLUDE] FILE1="C:/Oracle/oracle/dba.rsp"
Будьте осторожны, так как значения переменных, заданные в главном файле ответов имеют более высокий приоритет, чем значения, заданные во включаемых файлах.
Секция файла ответов "Session"
В этой секции прописываются установки основных диалогов OUI и их видимость для пользователя. Диалог показываются, если значение соответствующего ему параметра установлено в "true".
Пример:
[SESSION] SHOW_INSTALL_PROGRESS_PAGE=true
Диалог прогресса будет показан в процессе инсталляции.
В данной секции, также, описываются глобальные переменные, которые характерны для всей сессии инсталляции. К примеру, компоненты верхнего уровня, языковые настройки, и т.д.
FROM_LOCATION
Данный параметр необходим для тихого режима установки.
Параметр указывает на исходный путь инсталляции и аналогичен параметру "From" из соответствующего диалога.
FROM_LOCATION_CD_LABEL
Данный параметр используется для многодисковой инсталляции и устанавливает метку тома компакт-диска, на котором содержится файл "products.jar". Метка тома может быть найдена в файле "disk.label" в том же каталоге, в котором лежит "products.jar".
LOCATION_FOR_DISK{x}
Полный путь к следующим дискам. Пример:
LOCATION_FORM_DISK2="F:/teststage/cd/Disk2"
Если в дистрибутиве более двух дисков, вы можете вместо "x" в имени переменной подставить необходимые вам номера дисков.
OUI ищет компакт-диски с дистрибутивом двумя способами:
- OUI ищет определение переменной LOCATION_FOR_DISK{x} и файле ответов и использует указанный в этой переменной путь.
- Если переменной не существует, или указано неверное местоположение дистрибутива, инсталлятор ищет необходимые ему файлы по пути "../../Disk{x}/stage" (путь указан, относительно местоположения файла "products.jar".
ORACLE_HOME
Полный путь к домашней директории Oracle, аналогичен параметру "To" в соответствующем диалоге при ручной инсталляции Oracle.
Данный параметр необходим для тихой установки.
ORACLE_HOME_NAME
Имя текущей домашней папки Oracle. Требуется для тихой инсталляции.
APPL_TOP и APPL_TOP_NAME
То же, что и предыдущие два параметра, только задают путь и имя для приложений Oracle.
SHOW_COMPONENT_LOCATIONS_PAGE
Установкой данной переменной в "false" может быть выключена страница указания путей установки, которая появляется при выборе ручного (custom) типа установки. В этом случае, будут использованы переменные из файла ответов.
SHOW_CUSTOM_TREE_PAGE
Данная переменная позволяет отключить страницу выбора компонентов, которая появляется при ручном типе установки.
SHOW_END_SESSION_PAGE
Эта переменная включает или выключает страницу, показывающую результат сессии инсталляции.
SHOW_EXIT_CONFIRMATION
Установкой переменной SHOW_EXIT_CONFIRMATION в значение "false" можно подавить запрос на подтверждение выхода из инсталляции.
Пример (разрешает запрос):
SHOW_EXIT_CONFIRMATION = true
SHOW_INSTALL_PROGRESS_PAGE
Переменная включает или выключает страницу прогресса инсталляции.
SHOW_OPTIONAL_CONFIG_TOOL_PAGE
Установите эту переменную в "true", если хотите, чтобы страница "Optional Configuration Tools" было показана пользователю. Данная страница содержит список дополнительных инструментов конфигурации, включая детальную информацию о том, почему инструмент не смог отработать корректно.
SHOW_REQUIRED_CONFIG_TOOL_PAGE
Установите эту переменную в "true", если хотите, чтобы страница "Required Configuration Tools" было показана пользователю. Данная страница содержит список обязательных инструментов конфигурации, включая детальную информацию о том, почему инструмент не смог отработать корректно.
SHOW_ROOTSH_CONFIRMATION
Данная переменная имеет смысл только для платформы Unix и разрешает или запрещает вывод запроса запуска скрипта "root.sh".
Пример:
SHOW_ROOTSH_CONFIRMATION = true
SHOW_SPLASH_SCREEN
Переменная включает или выключает заставку Oracle Universal Installer.
SHOW_SUMMARY_PAGE
Переменная включает или выключает страницу, показывающую результат работы Oracle Universal Installer.
SHOW_WELCOME_PAGE
Переменная включает или выключает страницу приветствия ("The Welcome") Oracle Universal Installer.
SHOW_RELEASE_NOTES
Переменная разрешает или запрещает вывод в конце инсталляции страницы замечаний о релизе. Переменная SHOW_END_SESSION должна быть установлена в "true" перед использованием данного параметра.
TOPLEVEL_COMPONENT
Переменная задает имя компонента (продукта) верхнего уровня и его версию. Обычно, данный параметр определяется парой строк: первая задает внутренне имя компонента, а вторая - его версию. Значение данной переменной должно быть установлено.
К примеру, компонент rdbms 8.1.5 может быть представлен, как:
{"oracle.rdbms","8.1.5.0.0}
UNIX_GROUP_NAME
Параметр имеет смысл только для Unix и задает имя рабочей группы, которое будет установлено для каталога инвентария. Переменная, также, не имеет смысли, если уже установлен какой-либо из продуктов Oracle.
DEINSTALL_LIST
Используйте эту переменную для того, чтобы задать список деинсталлируемых в тихом режиме компонентов. Для каждого компонента должны быть заданы его имя и версия.
Пример:
DEINSTALL_LIST={"sample1","1.0.0.0.0"}
SHOW_DEINSTALL_CONFIRMATION
Переменная включает или выключает запрос подтверждения деинсталляции во время тихого режима работы.
SHOW_DEINSTALL_PROGRESS
Переменная включает или выключает страницу прогресса деинсталляции во время тихого режима работы.
Секции описания компонентов
Данные секции описывают параметры, специфичные для компонентов дистрибутива. Имя секции складывается из имени компонента и его версии.
Пример:
[oracle.server_8.1.5.0.0]
Описание каждого компонента может, помимо публичных параметров, определенных в компоненте, устанавливать следующие переменные: DEPENDENCY_LIST, PROD_HOME, OPTIONAL_CONFIG_TOOLS, INSTALL_TYPE и COMPONENT_LANGUAGES.
DEPENDENCY_LIST
Переменная DEPENDENCY_LIST задает список компонентов, от которых зависит компонент, секцию которого в данный момент вы редактируете. Данная переменная создается только в том случае, если такие зависимости существуют. В списке выбора, зависимые компоненты невозможно выбрать отдельно от указанных в переменной.
Типичный пример:
DEPENDENCY_LIST={"oracle.netclt","8.1.5.0.0","oracle.netmgr","8.1.5.0.0"}
PROD_HOME
Путь установки независимых продуктов, поставляемых вместе с Oracle. Такие продукты ставятся в PROD_HOME, вместо того, чтобы устанавливаться в ORACLE_HOME. Примером независимого приложения может служить сам Oracle Universal Installer.
OPTIONAL_CONFIG_TOOLS
Переменная задает список необязательных инструментов конфигурации Oracle и создается только в том случае, если такие инструменты присутствуют.
Пример:
#Example : OPTIONAL_CONFIG_TOOLS = {"configtool2 ", "configtool3"} OPTIONAL_CONFIG_TOOLS=
INSTALL_TYPE
Переменная задает тип инсталляции по-умолчанию и должна быть инициализирована.
COMPONENT_LANGUAGES
Данная переменная задает список языков, при выборе которых данный компонент будет установлен. Следует использовать следующие внутренние имена языков: en, : English, fr, : French, de, : German, ja, : Japanese
Пример:
COMPONENT_LANGUAGES = {"en"}
Данная переменная создается только в том случае, если доступно несколько языков.
Пример файла ответов №1
############################################################### ## typical.rsp ## ## This is a sample responsefile for a typical EE install. ## ## (minimal) ## ## Copyright(c) Oracle Corporation 2000. All rights reserved.## ## ## ## Specify values for the variables listed below to customize## ## your installation. ## ## ## ## Each variable is associated with a comment. The comment ## ## identifies the variable type. ## ## ## ## Please specify the values in the following format: ## ## ## ## Type Example ## ## String "Sample Value" ## ## Boolean True or False ## ## Number 1000 ## ## StringList {"String value 1","String Value 2"} ## ## ## ## ## ## !!!!!IMPORTANT!!!!! ## ## ## ## PLEASE VERIFY (CUSTOMIZE) THE VALUES FOR THE FOLLOWING ## ## VARIABLES BEFORE USING THIS FILE FOR SILENT INSTALL.TKX! ## ## ## ## 1) UNIX_GROUP_NAME ## ## 2) ORACLE_HOME && ORACLE_HOME_NAME ## ## 3) s_GlobalDBName ## ## 4) s_dbSid ## ## 5) s_mountPoint ## ## ## ## ALSO, MAKE SURE /var/opt/oracle/oraInst.loc EXISTS. ## ## TYPICAL ENTRY IN "oraInst.loc" LOOKS LIKE - ## ## inventory_loc=/home/dba/oraInventory ## ## BASICALLY, WHEREVER INVENTORY NEEDS TO BE LOCATED. ## ## ## ## AT THE END OF SILENT INSTALL LOOK UP THE FOLLOWING LOGS: ## ## - oraInventory/logs/installActions.log ## ## (for $ORACLE_HOME/root.sh execution, etc.) ## ## - /tmp/silentInstall.log ## ## ## ############################################################### [General] RESPONSEFILE_VERSION=1.0.0.0.0 [Session] #This entry is not used on Windows platforms #UNIX_GROUP_NAME;String;Used in Dialog #Group that the current user is part of, for ownership of the # install files. #UNIX_GROUP_NAME="dba" #FROM_LOCATION;String;Used in Dialog #Full path for the products.jar file. #Replace the X: with the drive letter of your CD-ROM device. FROM_LOCATION="X:\stage\products.jar" #FROM_LOCATION_CD_LABEL;String:Used in multi-CD installations. #It includes the label of the Compact Disk where the file # "products.jar" exists. The label can be found in the file # "disk.label" in the same directory as "products.jar". #ORACLE_HOME;String;Used in Dialog #Enter the path to your oracle home. Replace the drive letter # and optionally alter the home path. ORACLE_HOME="X:\Oracle\Ora81" #ORACLE_HOME_NAME;String;Used in Dialog #Enter the name of this oracle home. The name will be used to # identify this home. ORACLE_HOME_NAME="OraHome81" #TOPLEVEL_COMPONENT;StringList;Used in Dialog #Choices: "oracle.server", "8.1.5.0.0" TOPLEVEL_COMPONENT={"oracle.server", "8.1.5.0.0"} #SHOW_COMPONENT_LOCATIONS_PAGE;Boolean;Used in Dialog #Some components are flexible in where they are installed, # although all have default locations. Set this to FALSE if you # want to accept the default locations and not show this page. SHOW_COMPONENT_LOCATIONS_PAGE=false #SHOW_SUMMARY_PAGE;Boolean;Used in Dialog <--------------- #MUST befor "silent" install SHOW_SUMMARY_PAGE=false #SHOW_INSTALL_PROGRESS_PAGE;Boolean;Used in Dialog <----------- #MUST be for "silent" install SHOW_INSTALL_PROGRESS_PAGE=false #SHOW_REQUIRED_CONFIG_TOOL_PAGE;Boolean;Used in Dialog SHOW_REQUIRED_CONFIG_TOOL_PAGE=false #SHOW_OPTIONAL_CONFIG_TOOL_PAGE;Boolean;Used in Dialog SHOW_OPTIONAL_CONFIG_TOOL_PAGE=false #SHOW_END_SESSION_PAGE;Boolean;Used in Dialog <--------------- #MUST be for "silent" install SHOW_END_SESSION_PAGE=false #Parameter : LOCATION_FOR_DISK2 #Type : String #Description : Complete path to the other disks. #Example : LOCATION_FOR_DISK2 = "..\..\Disk2" LOCATION_FOR_DISK2="F:\teststage\cd\Disk3" #Parameter : NEXT_SESSION #Type : Boolean #Description : Set to true if the installer needs to go to the # File Locations page for another installation. #Example : NEXT_SESSION = true NEXT_SESSION=true #Parameter : SHOW_SPLASH_SCREEN #Type : Boolean #Description : Set to true if the initial splash screen in the # installer needs to be shown. #Example : SHOW_SPLASH_SCREEN = true SHOW_SPLASH_SCREEN=true #Parameter : SHOW_WELCOME_PAGE #Type : Boolean #Description : Set to true if the Welcome page in the # installer needs to be shown. #Example : SHOW_WELCOME_PAGE = false SHOW_WELCOME_PAGE=false #Parameter : SHOW_ROOTSH_CONFIRMATION #Type : Boolean #Description : Set to true if the Confirmation dialog asking to # run the root.sh script in the installer needs to be shown. #Valid only in Unix platforms. #Example : SHOW_ROOTSH_CONFIRMATION = true SHOW_ROOTSH_CONFIRMATION=true #Parameter : SHOW_EXIT_CONFIRMATION #Type : Boolean #Description : Set to true if the confirmation when exiting the # installer needs to be shown. #Example : SHOW_EXIT_CONFIRMATION = true SHOW_EXIT_CONFIRMATION=true [oracle.server_8.1.5.0.0] #INSTALL_TYPE;String;Used in Dialog # Minimal - Optional pre-configured DB (b_createDB), Networking # services, Server utilities Typical - Pre-configured starter # DB, Licensable options and Cartridges, # Networking services, Server utilities INSTALL_TYPE="Typical" [oracle.rdbms_8.1.5.0.0] #OPTIONAL_CONFIG_TOOLS;StringList #OPTIONAL_CONFIG_TOOLS={"dbassist"} OR OPTIONAL_CONFIG_TOOLS= # {"Oracle Database Configuration Assistant"} #s_GlobalDBName;String;Used in Dialog #This is the name of the database which will be created as part # of the typical install. #You should modify this string to use an appropriate name. s_GlobalDBName="acme.us.oracle.com" #This entry not needed for Windows installation. #s_mountPoint;String;Used in Dialog #Database file location: directory for datafiles, control files, # redo logs #s_mountPoint="/home/oracle/dbs" #s_dbSid;String;Used in Dialog #Value for ORACLE_SID. Change this to an appropriate SID. s_dbSid="ORCL" #b_createDB;Boolean #Relevant only in MINIMAL, set to TRUE if you want a starter # database, set to FALSE if not. #b_createDB=true
Пример файла ответов №2
############################################################### ## typical.rsp ## ## This is a sample responsefile for a typical EE install. ## ## (minimal) ## ## Copyright(c) Oracle Corporation 1998. All rights reserved.## ## ## ## Specify values for the variables listed below to customize## ## your installation. ## ## ## ## Each variable is associated with a comment. The comment ## ## identifies the variable type. ## ## ## ## Please specify the values in the following format: ## ## ## ## Type Example ## ## String "Sample Value" ## ## Boolean True or False ## ## Number 1000 ## ## StringList {"String value 1","String Value 2"} ## ## ## ## ## ## !!!!!IMPORTANT!!!!! ## ## ## ## PLEASE VERIFY (CUSTOMISE) THE VALUES FOR THE FOLLOWING ## ## VARIABLES BEFORE USING THIS FILE FOR SILENT INSTALL.TKX! ## ## ## ## 1) UNIX_GROUP_NAME ## ## 2) ORACLE_HOME && ORACLE_HOME_NAME ## ## 3) s_GlobalDBName ## ## 4) s_dbSid ## ## 5) s_mountPoint ## ## ## ## ALSO, MAKE SURE /var/opt/oracle/oraInst.loc EXISTS. ## ## TYPICAL ENTRY IN "oraInst.loc" LOOKS LIKE - ## ## inventory_loc=/home/dba/oraInventory ## ## BASICALLY, WHEREVER INVENTORY NEEDS TO BE LOCATED. ## ## ## ## AT THE END OF SILENT INSTALL LOOK UP THE FOLLOWING LOGS: ## ## - oraInventory/logs/installActions.log ## ## (for $ORACLE_HOME/root.sh execution, etc.) ## ## - /tmp/silentInstall.log ## ## ## ############################################################### [General] RESPONSEFILE_VERSION=1.0.0.0.0 [Session] #This entry is not used on Windows platforms #UNIX_GROUP_NAME;String;Used in Dialog #Group that the current user is part of, for ownership of the # install files. #UNIX_GROUP_NAME="dba" #FROM_LOCATION;String;Used in Dialog #Full path for the products.jar file. #Replace the X: with the drive letter of your CD-ROM device. FROM_LOCATION="G:\81500\EEdition\990211_CDM2\stage\products.jar" #ORACLE_HOME;String;Used in Dialog #Enter the path to your oracle home. Replace the drive letter # and optionally alter the home path. ORACLE_HOME="E:\16080_2.12\815Sil" #ORACLE_HOME_NAME;String;Used in Dialog #Enter the name of this oracle home. The name will be used to # identify this home. ORACLE_HOME_NAME="OraHome81" #TOPLEVEL_COMPONENT;StringList;Used in Dialog #Choices: "oracle.server", "8.1.5.0.0" TOPLEVEL_COMPONENT={"oracle.server", "8.1.5.0.0"} #SHOW_COMPONENT_LOCATIONS_PAGE;Boolean;Used in Dialog # Some components are flexible in where they are installed, # although all have default locations. Set this to FALSE if you # want to accept the default locations and not show this page. SHOW_COMPONENT_LOCATIONS_PAGE=false #SHOW_SUMMARY_PAGE;Boolean;Used in Dialog <--------------- #MUST befor "silent" install SHOW_SUMMARY_PAGE=false #SHOW_INSTALL_PROGRESS_PAGE;Boolean;Used in Dialog <---------- #MUST be for "silent" install SHOW_INSTALL_PROGRESS_PAGE=false #SHOW_REQUIRED_CONFIG_TOOL_PAGE;Boolean;Used in Dialog SHOW_REQUIRED_CONFIG_TOOL_PAGE=false #SHOW_OPTIONAL_CONFIG_TOOL_PAGE;Boolean;Used in Dialog SHOW_OPTIONAL_CONFIG_TOOL_PAGE=false #SHOW_END_SESSION_PAGE;Boolean;Used in Dialog <--------------- #MUST be for "silent" install SHOW_END_SESSION_PAGE=false [oracle.server_8.1.5.0.0] #INSTALL_TYPE;String;Used in Dialog # Minimal - Optional pre-configured DB (b_createDB), Networking # services, Server utilities # Typical - Pre-configured starter DB, Licensable options and # Cartridges, Networking services, Server utilities INSTALL_TYPE="Typical" [oracle.rdbms_8.1.5.0.0] #OPTIONAL_CONFIG_TOOLS;StringList #OPTIONAL_CONFIG_TOOLS={"dbassist"} OR OPTIONAL_CONFIG_TOOLS= # {"Oracle Database Configuration Assistant"} #s_GlobalDBName;String;Used in Dialog #This is the name of the database which will be created as # part of the typical install. #You should modify this string to use an appropriate name. s_GlobalDBName="B815.us.oracle.com" #This entry not needed for Windows installation. #s_mountPoint;String;Used in Dialog #Database file location: directory for datafiles, control files, # redo logs #s_mountPoint="/home/oracle/dbs" #s_dbSid;String;Used in Dialog #Value for ORACLE_SID. Change this to an appropriate SID. s_dbSid="B815" #b_createDB;Boolean #Relevant only in MINIMAL, set to TRUE if you want a starter # database, set to FALSE if not. b_createDB=true
На сладкое
Как видно из всего вышеизложенного, формат файла ответов крайне прост и понятен. Тем не менее, существует одна проблема, и довольно большая: один только список компонентов и их связей может свести с ума. Но от заполнения секций компонентов, равно как и от рутинного составления файла ответов, Oracle нас избавил. Дело в том, что Oracle Universal Installer умеет записывать выбранные вами в интерактивном режиме установки настройки в указанный файл ответов. Кроме того, запись файла ответов происходит до установки ПО, а, значит, сама установка не требуется.
Запустить запись файла из-под Windows можно следующим образом:
setup -record -destinationFile
Запустить запись файла из-под Unix можно следующим образом:
./runInstaller -record -destinationFile
Где Также следует отметить, что вместе с Oracle поставляются заготовки для файлов ответов, который вы найдете в каталоге "response" на компакт-диске Oracle.
Подробнее об инсталляции Oracle и работе с Oracle Universal Installer вы можете прочесть в документе Oracle "a96697" (Oracle Universal Installer Concepts Guide) и в документе "a95494-01" (Oracle 9i Client Installation Guide).
Вся вышеизложенная информация была подготовлена с использованием вышеуказанных документов. Версия Oracle, использовавшаяся во время подготовки данного материала - Oracle 9i, тем не менее, все вышесказанное может быть приложено и к Oracle 8i (с учетом ограничений инсталлятора восьмой версии, подробности ищи те в соответствующих документах).
Для связи с автором можно использовать его сайт http://gregor.kcsystema.ru/ или адрес электронной почты gregor@kcsystema.ru Данная статья не может быть воспроизведена частично или полностью в электронном, печатном, или ином виде, без письменного разрешения автора. Все упомянутые в статье торговые марки и товарные знаки принадлежат их уважаемым владельцам. (c) Григорий Ситнин, 2001-2002. Все права защищены.
http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу
В избранное | ||