Меню Рубрики

1с сервер на linux без ключа

Установка Платформы «1С:Предприятие» в ОС Linux

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

  • Сервер «1С:Предпритие» 64-bit версии 8.3.13.1644. Пакеты для установки доступны здесь:

  • Если для сервера использоваться ключи аппаратной защиты HASP, то необходимо установить на сервер драйвер защиты HASP. Последние версии для различных операционных систем можно скачать:

Если в дальнейшем работа с сервером «1С:Предприятие» на Linux и управление будет осуществляться c других машин, необходимо убедиться в том, что ip-адрес компьютера, на котором расположен сервер, будет корректно разрешаться в его hostname. Откроем консоль сервера от имени пользователя root и получим адрес компьютера:

Имя компьютера можно получить так:

Теперь данные о соответствии ip-адреса и имени необходимо внести в файлы hosts тех машин, откуда будут устанавливаться соединения с кластером серверов:

Для Windows он расположен обычно:

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

Установка платформы в Debian-системах на примере Ubuntu Server 16.04


  1. Откроем консоль сервера от имени пользователя root.
  2. Создадим директорию, куда поместим (любым удобным образом) архив с Deb-пакетами для установки Сервера 1С:Предприятие, скачанный предварительно.

Копировать в буфер обмена

  1. Войдем в каталог /1c/soft/1с:

Копировать в буфер обмена

Распакуем архив (при помощи команды tar xzf):

Копировать в буфер обмена

  1. Для установки пакетов удобнее всего воспользоваться утилитой gdebi. Если она не была ранее установлена, это можно сделать при помощи команды:

Копировать в буфер обмена

Устанавливаем сервер «1С:Предприятие»:

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

Установка будет осуществлена в директорию /opt/1C/v8.3/x86_64.

  1. Для корректной работы приложений необходимо установить шрифты из состава Microsoft Core Fonts:

Копировать в буфер обмена

Для того, чтобы система «увидела» установленные шрифты, нужно выполнить команду:

Проверить статус работы можно при помощи команды:

Будет выполнена проверка, запущен ли сервис (Starting 1C:Enterprise 8.3 server: OK), и выведено детальное состояние сервиса.

Проверить, запущены ли процессы кластера, можно при помощи команды:

Перейдем к установке драйвера HASP. Для данного примера скачиваем драйвер по адресу:

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

  1. Создадим каталог /1c/soft/hasp:

Копировать в буфер обмена

  1. В этот каталог любым удобным образом поместим скачанный пакет установки драйвера и перейдем в него:

Копировать в буфер обмена

  1. Поскольку драйвер использует 32-битные библиотеки, устанавливаем их:

Копировать в буфер обмена

  1. Устанавливаем драйвер:

Копировать в буфер обмена

  1. Запускаем драйвер защиты HASP:

Копировать в буфер обмена

Проверить статус можно так:

Установка платформы в RPMS на примере CentOS 7


  1. Откроем консоль от имени root.
  2. Создадим директорию, куда поместим (любым удобным образом) архив с RPM-пакетами для установки Сервера 1С:Предприятие, скачанный предварительно.

Копировать в буфер обмена

  1. Перейдем в директорию /1c/soft/1с

Копировать в буфер обмена

tar xzf rpm64_8_3_13_1644.tar.gz

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

Для пакетов x86_64 установка будет осуществлена в директорию /opt/1C/v8.3/x86_64.

  1. Для корректной работы приложений необходимо установить шрифты из состава Microsoft Core Fonts.

  • Скачиваем любым удобным образом (например, при помощи wget) файлы пакета с сервера SourceForge:

Надо скачать все .exe-файлы, кроме wd97vwr32.exe.

  • Переименовываем все скачанные .exe-файлы, присвоив им расширение .zip, после чего распакуем их и удалим все, кроме имеющих расширение .ttf – это файлы шрифтов.
  • Файлы шрифтов (.ttf-файлы) копируем в каталог /usr/share/fonts/truetype/

Для того, чтобы система «увидела» установленные шрифты, нужно выполнить команду:

Проверить статус работы можно при помощи команды:

Будет выполнена проверка, запущен ли сервис (Starting 1C:Enterprise 8.3 server: OK), и выведено детальное состояние сервиса.

Проверить, запущены ли процессы кластера, можно при помощи команды:

Перейдем установке драйвера HASP. Для данного примера скачиваем драйвер по адресу :

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

  1. Создадим каталог /1c/soft/hasp:

Копировать в буфер обмена

  1. В этот каталог любым удобным образом поместим скачанный пакет установки драйвера и перейдем в него:

Копировать в буфер обмена

  1. Поскольку драйвер использует 32-битные библиотеки, устанавливаем их:

Копировать в буфер обмена

  1. Устанавливаем драйвер:

Копировать в буфер обмена

  1. Запускаем драйвер защиты HASP:

Копировать в буфер обмена

Проверить статус можно так:

Основные проблемы и вопросы по установке Платформы «1С:Предприятие» в Linu x


1. При работе возникают ошибки «Не найдена библиотека …»

В зависимости от вашего дистрибутива Linux и функционала системы для корректной работы 1С:Предприятие вам может понадобиться дополнительно самостоятельно установить внешние библиотеки. Полный список их представлен в документации:

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

2. Как запустить сервер в режиме отладки?

Для того, чтобы на сервере была доступна отладка, необходимо запустить его в ключом –debug. Для этого сначала остановим сервер «1С:Предприятие»:

ВАЖНО! Не редактируйте параметры запуска сервера в процессе его работы, это может привести к ошибкам при его перезапуске.

Теперь необходимо отредактировать параметры его запуска в конфигурационном файле srv1cv83 (в данном примере с использованием редактора vim):

Находим в редактируемом файле строку SRV1CV8_DEBUG= , убираем в начале этой строки символ комментария # и устанавливаем значение переменной SRV1CV8_DEBUG в 1:

Сохраняем изменения и выходим из файла.

Перезапускаем сервер «1С:Предприятия 8»:

3. Где находится каталог данных кластера серверов и как его изменить?

По умолчанию каталог кластера находится в директории пользователя, от имени которого запущен сервер 1С:Предприятие — $HOMEDIR/.1cv83/1C/1Cv83, например:

Для того, чтобы изменить место изменить место расположения, необходимо, по аналогии с п. 1, изменить параметр SRV1CV8_DATA запуска в конфигурационном файле /etc/sysconfig/srv1cv83.

ВАЖНО! Не забудьте убедиться в наличии прав на директорию данных кластера у пользователя, от имени которого запущен сервер. Увидеть права можно при помощи команды:

Предоставить права можно так:

В конфигурационном файле /etc/sysconfig/srv1cv83 также задаются порты, на которых будут работать процессы кластера, и другие параметры запуска.

4. Как настроить технологический журнал сервера в Linux ?

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

Создадим каталог для настроек журнала /opt/1C/v8.3/x86_64/conf:

Поместим в этот каталог файл logcfg.xml со следующим (например) содержимым:

В данном случае собирается полный технологический журнал (не стоит делать так на постоянной основе в продуктиве), срок хранения файлов журналов — 24 часа, находиться они будут в директории /var/log/1c/logs.

ВАЖНО! Необходимо предоставить пользователю, от имени которого работает сервер 1С:Предприятие, права на запись в каталог логов. Например, так:

  • Создадим группу пользователей grp1clogs, которой будут даны права на журнал:

Копировать в буфер обмена

  • Дадим права этой группе на каталоги журнала:

Копировать в буфер обмена

Источник

БАЗА ЗНАНИЙ

Инструменты пользователя

Инструменты сайта

Содержание

Установка 1С:Предприятие 8.3 на Linux сервер

В этой статье мы постарались собрать наиболее полную информацию по установке сервера приложений 1С:Предприятие в среде Linux с использованием СУБД PostgreSQL и публикацией информационной базы и веб-сервисов на веб-сервере Apache. Рассматривается наиболее полная установка сервера в домен Microsoft Windows. Пользователи работают на рабочих станциях в среде Windows, авторизация в системе 1С:Предприятие производится через Active Directory.

План работ

Установка операционной системы

Поддерживаются наиболее популярные deb (Ububtu, Debian и пр.) и rmp (CentOS, Fedora и пр.) дистрибутивы. Каких-либо явных рекомендаций по выбору того или иного дистрибутива Linux не существует. Рекомендуем выбрать наиболее знакомый Вам дистрибутив, в нашем случае это Ubuntu актуальной на момент написания статьи версии 16.04 LTS, все дальнейшее описание будет основываться именно на этом выборе. Если Вы выбрали другой deb-based дистрибутив, то все описанное подойдет и для него, rmp-based дистрибутивы используют другие команды для управления пакетами, учитывайте это при адаптации статьи для своих целей. Скачайте дистрибутив Ubuntu Server. Применительно к Ubuntu желательно использовать LTS дистрибутивы, они выпускаются раз в два года и поддерживаются в течение 5 лет. Дистрибутив распространяется в виде ISO образа загрузочного диска, можно записать образ на DVD диск, но гораздо удобней подготовить загрузочную флешку.

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

Если у Вас один физический диск (или RAID-массив), разделите его на 3 логических диска. В начале диска выделите 60-120 Гб собственно под операционную систему (диск 1), оставшуюся часть поделите примерно поровну под домашние папки (диск 2) и файлы СУБД (диск 3). Монтируйте следующим образом:

Если же дисковая система Вашего сервера более разнообразна, то самый медленный ее элемент рекомендуем монтировать как /home , а самый быстрый как /var .

Далее инсталлятор предложит Вам выбрать наборы пакетов для установки. Выберите для установки следующие наборы:

Инсталлятор закончит свою работу, перезапустит систему и пред Вами предстанет приглашение в консоль примерно такого вида:

Заходите, и чувствуйте себя как дома.

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

В ответ Вы получите нечто похожее на

Нас интересует вот этот фрагмент: logical name: enp0s3 . Если сетевых адаптеров больше одного, то и таких блоков в выдаче будет по количеству сетевых адаптеров. Запоминаем логические имена. Сетевые подключения настраиваются в конфигурационном файле, откроем его для редактирования

Допустим, у нас есть два сетевых адаптера. enp0s3 , его мы настроим на статический IP адрес и будем использовать для подключения к домену. Еще есть enp0s8 , он получит адрес от DHCP сервера в локальной сети, просто так, для примера. Файл настроек выглядит так:

Сохраните файл нажав Ctrl-O и закройте редактор Ctrl-X. После редактирования перезапустим сеть:

и проверим что у нас получилось

В выдаче этой команды внимательно смотрим на значения inet addr — в нашем примере там должен быть статический адрес, заданный в конфигурационном файле для первого адаптера и динамический адрес выданный DHCP сервером для второго.

Для дистанционного управления сервером с рабочей станции Windows мы будем использовать PuTTy. Скачайте, установите и подключайтесь. Адрес сервера в нашем примере указывается так user@192.168.0.8 , где user — имя пользователя, порт по умолчанию 22 .

Задача минимум сейчас — расшарить папку на сервере, куда мы сможем копировать нужные файлы.

В конфигурационном файле находим и раскомментируем блок

Добавим нашего пользователя в Samba

Указываем ему пароль и включаем

И перезапускаем Samba

Попробуем зайти из проводника Windows. В нашем примере это будет выглядеть так \\192.168.0.8\user , вводим имя, пароль и попадаем в домашнюю папку.

На всякий случай обновите русскую локаль

Установка СУБД PostgreSQL

Существует несколько источников, где можно взять дистрибутив PostgreSQL совместимый с 1С:Предприятие. Можно, например, как рекомендует сама фирма «1С» скачать его с портала ИТС и установить из deb или rpm пакетов, такой подход вполне привычен для пользователей Windows, скачивать и устанавливать. В Linux другой подход. Например, для поклонников Gentoo Linux привычно было бы скачать исходники PostgreSQL, пропатчить их и скомпилировать. А философия Ubuntu базируется на репозиториях, откуда пользователи получают нужные программы, устанавливая их менеджерами пакетов. К сожалению фирма «1С» не озаботилась созданием такого репозитория для распространения специальной версии PosgreSQL, зато это сделала компания Postgres Professional.

Сначала всё-таки стоит добавить официальный репозиторий PostgreSQL в Ubuntu. Это будет полезно для разрешения зависимостей пакетов.

Качаем файл postgresql_10.5_24.1C_amd64_deb.tar.bz2 где 5_24 — актуальный на момент написания статьи номер сборки, к моменту, когда Вы это прочтете он может стать другим, берите самую актуальную сборку.

Распакуем, перейдем в папку с пакетами, установим и зафиксируем версии, что бы Ubuntu при автоматическом обновлении не заменила эти пакеты на стандартные из репозитория:

Не забываем заменять 5-24 на номер скачанной сборки.

Настроим права на подключение к СУБД из консоли.

В открывшемся файле найдем строку

и приведем ее к виду

Если не хотите, что бы сервер СУБД был виден кому-либо, кроме сервера 1С:Предприятие, который мы чуть позже установим, поправьте настройки безопасности

В открывшемся файле находим строку

и приводим ее к виду

После такой установки PostgreSQL его служба сама не стартует и не прописывается в автозагрузку. Сделаем это

И еще немного настроек безопасности. Установим пароль password на пользователя postgres , именем которого будут производится все операции с базами данных (вместо password укажите свой пароль).

Поправим методы аутентификации пользователей

В открывшемся файле устанавливаем все методы в md5 , например, так

Перезапускаем службу PostgreSQL

Установка сервера 1С:Предприятие

Предварительно установим пакеты, необходимые для работы сервера 1С:Предприятие

В процессе установки пакета ttf-mscorefonts-installer потребуется принять условия пользовательского соглашения EULA.

Любым законным способом получаем дистрибутив платформы 1С:Предприятия для deb-based Linux, например, скачиваем его с портала ИТС. Сервер 1С:Предприятие состоит из 3-х пакетов:

Скопируйте только эти 3 файла по сети в домашний каталог пользователя, в нашем примере \\192.168.0.8\user Устанавливать пакеты нужно именно в такой последовательности. Случайно или нет, они по алфавитному порядку выстраиваются именно так, как нужно, а значит их можно установить одной командой

Сервер установлен. Запускаем

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

Регистрация сервера в домене

Как обычно, начнем с установки необходимых пакетов

Если при установке системы не устанавливали Samba, то самое время сделать это

И еще может понадобиться, а может нет, но лучше установить

Настроим DNS

Сначала разберемся с именем самого сервера

В этом файле должно быть указано имя компьютера, данное ему при установке операционной системы. Если по каким-то причинам там не оно — исправьте.

Теперь научим его находить самого себя по своему короткому и полному доменному имени.

Здесь нужно сопоставить имена с IP адресом любого сетевого соединения, например, так

и прописываем имена и адреса

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

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

Добавляем запись домена

Чтобы добавить еще один сервер службы имен домена находим в этом файле строку prepend domain-name-servers , раскомментируем ее и указываем нужный IP адрес.

Перезапустим службу сети

Проверим, что у нас получилось. Попробуйте пингануть контроллер домена по короткому и полому доменному имени имени, допустим его зовут server

Синхронизируем часы

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

Установим часового демона, который будет периодически синхронизировать время с контроллером домена по протоколу NTP

укажем источник точного времени в домене — контроллер домена

Настроим авторизацию через Kerberos

Открываем конфигурационный файл

И приводим его к такому виду, разумеется заменяя имена и IP адреса нашего примера под свои условия

Пробуем войти в домен как его пользователь ivanov

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

Он выглядит примерно так

И он нам больше не нужен, удалим его

Настроим Samba и включим сервер в домен

Открываем файл конфигурации Samba

И приводим его примерно к такому виду

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

Если ошибок нет, и правильно установлена роль

то мы готовы включиться в домен, разумеется, если знаем пароль администратора домена domainadministrator

Если Вы видите нечто похожее на

то поздравляем, у Вас все получилось, Вы в домене!

Авторизация пользователей 1С:Предприятие на Linux сервере через Active Directory

В клиент-серверном варианте работы 1С:Предприятие аутентификация пользователей производится на сервере. Если сервер работает под управлением Windows, то он без проблем получает нужные права для того, что бы проверить учетную запись Active Directory.

В Linux дела обстоят иначе. Сервер 1С:Предприятие у нас работает под учетной записью usr1cv8 , которая имеет какие-либо права только в пределах нашего linux-сервера. В домене у этого linux-пользователя нет никаких прав, соответственно сервер 1С:Предприятие не может получить ничего от Active Directory.

Что бы исправить эту проблему серверу 1С:Предприятие нужно выдать специальный «билет» и сопоставить его с пользователем Active Directory по протоколу Keberos.

Создайте такого пользователя в Active Directory, назовите его, например, linux1сv8 . Права у него могут быть совершенно любые, главное, что бы в настройках его учетной записи была отключена опция Use DES encryption types with this account .

Теперь нам потребуется командная строка Windows рабочей станции, включенной в домен и утилита ktpass , найти ее можно в пакете «Windows Support Tools» сервера или «Средства удаленного администрирования» полнофункциональных версий настольных Windows. Эта утилита генерирует специальный ключ, который не-windows системы могут использовать для авторизации в домене по протоколу Keberos.

Полученный файл переместите по сети в домашнюю папку на linux-сервер \\myserver\user . А на сервере его нужно переместить в каталог, где установлено 1С:Предприятие, поменять ему владельца и назначить безопасные права

Проверим, все ли сделано правильно

Если Вы видите нечто похожее на

то у Вас все получилось, поздравляем!

Публикация на веб-сервере Apache

Как всегда, начинаем с установки нужных нам пакетов. Если Вы разворачиваете отдельный сервер для web-публикации, при установке на него операционной системы достаточно указать, что этот сервер будет работать как LAMP (Linux Apache MySQL Php).

Если сервер уже установлен без Apache

Уточним, что мы установили из репозитория

2.4 — этот номер версии нам нужно будет указать при публикации, соответственно в параметре публикации указываем -apache24 . Все остальные параметры указаны для установки Apache 2.4 по-умолчанию.

Проверяем, заходим через браузер http://myserver/base1c и видим веб-клиента 1С:Предприятие.

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

В этот XML файл после блока, описывающего подключение к информационной базе нужно добавить блоки с описанием публикуемых веб-сервисов информационной базы, например, для работы мобильного приложения 1С:Заказы с поддерживаемыми конфигурациями нужно опубликовать веб-сервис CustomerOrdersExchange . Подробнее см. информацию в документации к прикладному решению на платформе 1С:Предприятие.

После изменений в конфигурационных файлах не забывайте перезапускать Apache.

Настройка HTTPS

Для совсем правильного и безопасного доступа по протоколу HTTPS нужно получить цифровой сертификат, подписанный удостоверяющим центром (Certificate Authority). Такие сертификаты гарантируют не только шифрование трафика между клиентом и сервером, но и обезопасят ваших пользователей от кражи паролей, особенно, если они будут подключаться из публичных wi-fi сетей.

Такой сертификат можно приобрести практически у любого хостинг-провайдера, многие предлагают первый выпуск базового сертификата сроком действия 3 или 12 месяцев бесплатно. Стоимость продления начинается примерно от $50, в зависимости от опций.

Еще вариант — получить сертификат центра сертификации Let’s Encrypt. Его выпуск и продление совершенно бесплатны. Сертификат выпускается сроком на 3 месяца, зато процесс его выпуска, продления и установки в веб-сервер Apache полностью автоматизированы.

Здесь же мы опишем выпуск т.н. самоподписанного сертификата.

Создадим SSL сертификат

Укажите PEM pass phrase — пароль приватного ключа. На остальные вопросы можете отвечать как угодно, кроме Common Name (eg, YOUR name) []: — тут следует указать доменное имя сайта. В результате в домашней папке появится два файла myserver.key — приватный ключ и myserver.pem — публичный сертификат. Что бы Apache при загрузке не спрашивал непонятно у кого пароль приватного ключа, снимем его

Переместим их в безопасное место и настроим права доступа только для root

Переходим к настройкам Apache, включаем поддержку SSL

И настраиваем доступ по HTTPS. Открываем файл конфигурации сайта по-умолчанию

и приводим его к такому виду

Резервное копирование

Резервное копирование в PosеgreSQL выполняется утилитой pg_dump . Подробная справка по синтаксису выводится командой

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

Для восстановления базы из архива, созданного командой pg_dump используется команда pg_restore . Подробная справка по синтаксису

Пример восстановления базы base1c из бэкапа base1c.sql.tar

Бэкап сохранился в домашней папке пользователя, это лучше, чем ничего, но хранить резервные копии баз данных на самом сервере баз данных слишком самоуверенно. Когда-то давно резервные копии делали на ленты стримера и увозили их куда подальше в надежное место. Сейчас для резервного копирования используются сетевые или облачные NAS хранилища, расположенные в таком надежном месте. В нашем примере копирование будет выполняться на сетевое NAS хранилище, включенное в домен под сетевым именем nas .

Обеспечим к нему доступ нашего пользователя. В Active Directory создадим пользователя backupuser, дадим ему права на запись в папке, где будем складывать резервные копии.

Примонтируем сетевую папку, сначала создадим точку монтирования

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

Прописываем в файл параметры подключения

и скроем его от посторонних глаз

Пропишем подключение сетевой папки при старте системы

в конец файла добавляем

и даем команду примонтировать все, что мы прописали

В результате в точке монтировали /mnt/nas должна появиться папка сетевого хранилища \\nas\backups , куда можно складывать резервные копии.

Для выполнения автоматического резервного копирования нужно создать скрипт, который будет запускаться по расписанию демоном cron . К счастью, писать этот скрипи самому не нужно, в сообществе PostgreSQL уже написано много таких скриптов, рекомендую использовать канонический скрипт.

Используйте скрипт pg_backup_rotated.sh , он сохраняет резервные копии за несколько дней, автоматически удаляя старые копии.

Создайте в домашней папке пользователя файл pg_backup_rotated.sh и разместите в нем скрипт по указанной выше ссылке.

Установите для этого файла признак исполняемости

В том же каталоге создайте файл настроек pg_backup.config и заполните его как по указанной выше ссылке. Все настройки можно оставить по умолчанию, кроме

Проверьте работоспособность, выполните команду

Если не увидели никаких ошибок и процесс копирования пошел, то все сделано правильно, можно поставить задачу в расписание. Редактируем задания для демона cron

добавляем строчку с заданием

Резервное копирование будет выполняться в 19:00 с понедельника по пятницу.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Application support mac os
  • Apple pages для mac os
  • Apple music mac os
  • Apple mac os x lion apple mac os x lion
  • Apple mac os x leopard theme for xp