The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Первый стабильный релиз децентрализованной системы установки приложений Zero Install

24.05.2011 11:49

После восьми лет разработки увидел свет первый релиз децентрализованной, независящей от дистрибутива, системы инсталляции/запуска приложений Zero Install 1.0. Новая версия не несет в себе каких-либо серьезных изменений, кроме исправления двух незначительных ошибок, но знаменует собой окончательную стабилизацию метаданных, кода и форматов, используемых для распространения приложений.

Основная идея и отличие Zero Install от других систем инсталляции приложений заключается в том, что он дает пользователям возможность запуска приложений с сайта разработчика/дистрибьютора без их фактический инсталляции. Установив на машину Zero Install пользователю останется только указать адрес файла-описания нужного приложения и оно со всеми зависимостями будет загружено и запущено в полностью автоматическом режиме. Все приложения кэшируются в домашнем каталоге пользователя и проверяются на обновления во время каждого запуска, в любой момент кэш можно удалить, если в приложении больше нет необходимости. Каждое приложение размещается в отдельном каталоге, что позволяет одновременно использовать несколько версий одной программы.

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

В число поддерживаемых операционных систем входят все дистрибутивы Linux, а также FreeBSD, Solaris, MacOS X и Windows. При этом для обеспечения поддержки всех систем в Zero Install достаточно подготовить один набор мета-данных, в которых указать доступность исполняемых образов для заданных целевых операционных систем. Zero Install не предъявляет особых требований к оформлению пакета, поддерживается даже использование обычных исполняемых файлов или приложений, оформленных в виде архива tar.gz. Полный список источников приложений можно найти на данной странице. Также существует дистрибутив GoboLinux, в котором Zero Install используется в качестве основной системы управления пакетами.



  1. Главная ссылка к новости (http://permalink.gmane.org/gma...)
  2. OpenNews: Проблемы организации иерархии файловой системы в Linux
  3. OpenNews: Открытое письмо к создателям Ubuntu
Автор новости: Evgeny Zobnin
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/30640-0install
Ключевые слова: 0install, install, package
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (52) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 12:20, 24/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    А говорили, Steam для Linux не будет...
     
     
  • 2.4, Аноним (-), 12:29, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А что, будет?
     
  • 2.5, анонимус (??), 12:34, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    При чем тут стим?
     

  • 1.2, VoDA (ok), 12:21, 24/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Круто =))) Может таки сделают единый механизм установки любого Linux приложения в любой Linux )))
     
  • 1.6, Аноним (-), 12:38, 24/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Круто, ждём новых троянов.
     
     
  • 2.8, Anonus (?), 12:40, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +8 +/
    А есть старые?
     
     
  • 3.9, Аноним (-), 13:15, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А куда б они делись?

    http://lwn.net/Articles/367874/ - первое, что вспомнил.

     

  • 1.10, soshial (?), 13:25, 24/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а мне казалось, что suse и ещё несоклько других операционок разрабатывают как раз такую, общую для всех систему управления пакетами... нет?
     
     
  • 2.27, анон (?), 20:36, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > а мне казалось, что suse и ещё несоклько других операционок разрабатывают как
    > раз такую, общую для всех систему управления пакетами... нет?

    Чем больше общих систем управления пакетами тем лучше! (думаю, печаль и ирония читаются)
    Хоть 1 разработчик собрал пакет своей проги для этой штуки?


     
     
  • 3.31, Lain_13 (?), 22:59, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Напоминаю, в Gobo Linux это основной менеджер пакетов.
     
     
  • 4.49, анон (?), 11:54, 26/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Дистр интересный, но не совсем живой :/
    И это не оказывает что хоть 1 разработчик (а не мейнтейнер гоболинукса) выложил свою прогу в формате зеро инсталл.
     
  • 2.52, paulus (ok), 14:45, 28/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    угу, только не такую кривую...
    Лозунг дня: "Даешь все в /Program files"
     

  • 1.12, EuPhobos (ok), 14:02, 24/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Юзал этот зироинстал для установки ROX, запутанная система на самом деле. Очень легко поддавалась сбою. Хотя это было давно, сейчас может изменили принцип, нужно потестить.
     
  • 1.13, Аноним (-), 14:57, 24/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Я юзал Gobo, но про 0install слышу впервые :)) Там есть менеджер пакетов, но он написан на баше (если я правильно ошибаюсь) - ни про какие зероинсталлы там речи не шло. Но идеи у Gobo правильные, жаль что сообщество так тупо его игнорирует.
     
     
  • 2.14, Аноним (-), 16:13, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Гобо - не юникс вэй.
     
     
  • 3.28, Michael Shigorin (ok), 21:31, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Гобо - не юникс вэй.

    Это если очень мягко говоря...

     
  • 3.53, Marbleless (?), 00:10, 30/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Гобо - не юникс вэй.

    Это еще почему?

     

  • 1.15, Avatar (??), 16:28, 24/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Мечта. И дистрибутив с правильной организацией файлов - мечта. Я уже давно смотрю, но жаль что он не развивается.

    Все равно половину приложений приходится из исходников ставить какой дистрибутив не используй. RPM не панацея. Надо что-то именно такое.

     
     
  • 2.16, Satori (?), 16:57, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Все равно половину приложений приходится из исходников ставить какой дистрибутив не используй.
    > RPM не панацея.

    Ставить из исходников нам не привыкать, судьба такая, make && make install - наше всё.

    Правда, ещё софтинка checkinstall есть, но если нет подключения к инетнету, она свои зависимости не получит и не поставится.

     
  • 2.23, vayerx (ok), 17:49, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    gentoo + overlays
     

  • 1.17, yurkis (ok), 16:59, 24/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Что- то по описаению PBI из PC-BSD напоминает...
     
  • 1.18, Frank (ok), 17:08, 24/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > Каждое приложение размещается в отдельном каталоге, что позволяет одновременно использовать несколько версий одной программы.

    Да здравствует DLL hell!!1

     
     
  • 2.19, wtf123 (?), 17:16, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Да здравствует DLL hell!!1

    крайне наивное и поспешное заявление, основанное на полном непонимании механизма работы ZI... как раз при ZI невозможен не только dll hell, но и dependency hell - все это отсутствует как класс

     
     
  • 3.29, Michael Shigorin (ok), 21:33, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> Да здравствует DLL hell!!1
    > крайне наивное и поспешное заявление, основанное на полном непонимании механизма работы
    > ZI... как раз при ZI невозможен не только dll hell, но
    > и dependency hell - все это отсутствует как класс

    Минуточку, что именно делаем:
    - если два разных бинаря требуют разные soname?
    - с очередной дырявой libpng?

     
     
  • 4.35, гыгы (?), 01:27, 25/05/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    1) читаем как работает ZI и вопрос отпадает, создание ситуации "dll hell" невозможно в принципе
    2) боюсь что остаемся с дырявой libpng, если пакет для ZI не допускает более новую версию - да, это минус ZI, но это удобно и софт все же работает
     
     
  • 5.36, Anonymouse (?), 02:23, 25/05/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То есть слив по обоим пунктам заЩЩитан полностью. ЧИТД.
     
     
  • 6.37, коксюзер (?), 08:20, 25/05/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > То есть слив по обоим пунктам заЩЩитан полностью. ЧИТД.

    Собака лает - караван идёт. ;)

     
  • 4.38, Andrew Kolchoogin (?), 11:00, 25/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > если два разных бинаря требуют разные soname?

    LD_LIBRARY_PATH=.:

    > с очередной дырявой libpng?

    LD_PRELOAD=/path/to/недыряваяlibpng.so.<что-там-у-неё>

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

     
     
  • 5.40, Michael Shigorin (ok), 13:57, 25/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Кстати сказать, вот идея не тянуть, если в системе уже стоит библиотека,
    > не очень хороша именно из-за "дырявых libpng"... :(

    Да нет же.  Просто получается _скрытый_ _распределённый_ dll hell.  А снаружи -- "зато всё работает", хотя на самом деле это дешёвые понты от неопытных шапкозакидателей.  Общался я с ними, труба :(

     
     
  • 6.42, коксюзер (?), 15:24, 25/05/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Да нет же.  Просто получается _скрытый_ _распределённый_ dll hell.  А

    Никто не мешает собирать пакеты с общими зависимостями. Разница с традиционным пакетированием в том, что никто и не заставляет. Только и всего. Кроме того, если вам действительно интересно (а не хочется навесить ярлык на непонятое), посмотрите, как организуется окружение сборки и окружение установленных пакетов в таких системах.

    > снаружи -- "зато всё работает", хотя на самом деле это дешёвые
    > понты от неопытных шапкозакидателей.  Общался я с ними, труба :(

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

     
     
  • 7.45, Michael Shigorin (ok), 19:36, 25/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> Да нет же.  Просто получается _скрытый_ _распределённый_ dll hell.  А
    > Никто не мешает собирать пакеты с общими зависимостями. Разница с
    > традиционным пакетированием в том, что никто и не заставляет. Только и всего.

    Получается несколько более гибкий вариант (semi)static, и какую проблему это решает?

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

    Мне было интересно несколько лет назад -- посмотрел и стало жалко затраченного времени.  См., например, http://lists.altlinux.org/pipermail/community/2005-March/569123.html

    > Причём как правило аргументатор общался не с этими, а с какими-то другими,
    > которые действительно ничего не умеют. Но обобщать - это же наше всё.

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

     
     
  • 8.48, коксюзер (?), 11:38, 26/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Получается более гибкий вариант традиционного пакетирования В зависимости от си... большой текст свёрнут, показать
     
  • 6.51, Andrew Kolchoogin (?), 22:33, 26/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Миш, ну откуда DLL Hell-то, а?

    В Юниксе библиотеки версионируются, здесь вам не Windows. К тому же, есть -Wl,-rpath, да и LD_LIBRARY_PATH, как я отмечал.

     
     
  • 7.54, Michael Shigorin (ok), 01:48, 01/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Миш, ну откуда DLL Hell-то, а?
    > В Юниксе библиотеки версионируются, здесь вам не Windows. К тому же, есть
    > -Wl,-rpath, да и LD_LIBRARY_PATH, как я отмечал.

    Из возможности положить в "одинаковые" libA.so.X немного разным образом собранный код, например.  При этом без дополнительного анализа ABI формализация зависимостей вдруг может оказаться на практике неполной: soname не определяет ключи компиляции как минимум, да и вообще ABI (некоторые апстримы не заморачиваются поднимать soname, чуточку поломав ABI).

    Алексей Турбин в альте эту проблему анализировал и решил, поскольку централизованных репозиториев она (ессно) тоже касается, но там по крайней мере возможно централизованно же и ловить такие крайние случаи.

     
     
  • 8.55, коксюзер (?), 17:18, 01/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А в Zero Install невозможно Возможно Более того, там такие проблемы возникают ... текст свёрнут, показать
     
  • 4.41, коксюзер (?), 15:19, 25/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Минуточку, что именно делаем:
    > - если два разных бинаря требуют разные soname?

    А что обычно делают в таких случаях? Держат две версии одной библиотеки. В чём проблема?

    > - с очередной дырявой libpng?

    Обновляем libpng и не раздуваем из мухи слона. Фиксы для замороженных версии выпускаются практически вровень с мейнстримом. Тем и живут бинарные дистры, включая Альт.

     
     
  • 5.44, Michael Shigorin (ok), 19:25, 25/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> Минуточку, что именно делаем:
    >> - если два разных бинаря требуют разные soname?
    > А что обычно делают в таких случаях? Держат две версии одной библиотеки.
    > В чём проблема?

    Не-не, что _обычно_ делают (и как именно) -- я знаю.  Только это подразумевает наличие одного общесистемного пакета-провайдера каждого такого сонейма.  А вот как с их вариантом bundle'инга это разумным образом сопрячь, сходу не соображу (если рассматривать вкупе со следующим вопросом).

    >> - с очередной дырявой libpng?
    > Обновляем libpng

    Где именно?

     
     
  • 6.47, коксюзер (?), 09:34, 26/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Не-не, что _обычно_ делают (и как именно) -- я знаю.  Только
    > это подразумевает наличие одного общесистемного пакета-провайдера каждого такого сонейма.
    >  А вот как с их вариантом bundle'инга это разумным образом
    > сопрячь, сходу не соображу (если рассматривать вкупе со следующим вопросом).

    *нудным менторским голосом цитирует FAQ с сайта ZI*

    Isn't it wasteful for every program to bundle all its dependencies?

    Yes, but Zero Install doesn't do that. Everything is dynamically linked, just as in a traditional Linux system: you can publish a program on your web-site that links against a library on another web-site. When updates are available for a library, they are used by all programs using that library (except for programs which are incompatible with the new library version, which will continue using the older version, without preventing other programs from upgrading).

    >> Обновляем libpng
    > Где именно?

    В пакете, который предоставляет эту библиотеку.

     

  • 1.20, xoomer (ok), 17:44, 24/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, а теоретически запустить Linux-программу в Windows Zero Install-у под силу?
     
     
  • 2.22, Аноним (-), 17:48, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Теоретически, вы можете построить в гараже космический корабль и слетать на Луну, не то что там какой-то бинарь запустить. Остается только реализовать это на практике :)
     
  • 2.26, Аноним (-), 18:24, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Притянет coLinux, cygwin, лысого чёрта с бубном и запустит.
     

  • 1.21, Аноним (-), 17:46, 24/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Децентрализованный? А откуда он берет списки сайтов с софтом? Алсо у них есть централизованное зеркало. Вообще, очень странная хреновина. По описанию очень похоже на просто еще 1 менеджер пакетов.

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

     
     
  • 2.24, Аноним (-), 18:23, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Нет в безопасности понятия "Доверие". Оно есть только в у...дочной концепции PKI. В безопасности есть только "знание". "Доверия" там нет и быть не может. Объясните за доверие любому профессиональному безопаснику. ФСБшнику. ГБшнику. Ну и так далее. Сильно удивитесь.
     
     
  • 3.25, Аноним (-), 18:23, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Нет в безопасности понятия "Доверие". Оно есть только в у...дочной концепции PKI.
    > В безопасности есть только "знание". "Доверия" там нет и быть не
    > может. Объясните за доверие любому профессиональному безопаснику. ФСБшнику. ГБшнику.
    > Ну и так далее. Сильно удивитесь.

    Так шта малварь будет по-любому. Другое дело, что ее будет вменяемое количество. Как в венде после Симантека, обновленного только что. :)

     
  • 3.32, Livid (?), 23:08, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По опыту общения с нашими экс-СБшниками, там есть понятие "доверие". Причем понятие очень такое... понятие, из серии "мамой клянусь" и "да я сам видел", так что пример не очень удачный.
     
     
  • 4.33, Аноним (-), 23:23, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > По опыту общения с нашими экс-СБшниками, там есть понятие "доверие".

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

     
  • 4.34, Michael Shigorin (ok), 23:55, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > По опыту общения с нашими экс-СБшниками, там есть понятие "доверие". Причем понятие
    > очень такое... понятие, из серии "мамой клянусь" и "да я сам
    > видел", так что пример не очень удачный.

    По-моему, вбросовый характер "примера" виден уже по "симантеку".

    А на доверии очень многое держится.  И не только выраженном технически.

     
  • 3.39, Andrew Kolchoogin (?), 12:10, 25/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Объясните за доверие любому профессиональному безопаснику.

    Ну, если безопасник действительно профессиональный, то он понимает, что целиком жить на формально доказанном программном обеспечении не получится в принципе.
    А тестирование (например, такое: http://elibrary.ru/item.asp?id=12879171) может дать гарантию только _наличия_ недокументированных возможностей, но не их отсутствия.

     

  • 1.30, gegMOPO4 (ok), 22:16, 24/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > если в системе уже будет присутствовать нужная для работы программы зависимость, ее повторная загрузка не произойдет

    А если системный пакетный менеджер удалит зависимость, которая из-за этого не была зероинсталлирована? А если обновит её несовместимым с зероинсталлированными программами? А если обновление зероинсталлированной зависимости поломает кучу зераинсталлированных кривых программ (как libc поломал флеш)? Как вообще можно указывать зависимости для разных пакетных менеджеров разных систем, если они по-разному называются, нумеруются и разбиваются на пакеты? Что делать, если системная зависимость собрана с неожиданными для зеропакетировщика опциями? Или если разные зероинсталлированные программы требуют одной и той же версии зависимочти, собранной по-разному? Что делать с подмонтированным noexec домашним разделом?

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

     
     
  • 2.43, коксюзер (?), 15:40, 25/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    На этот случай есть процедуры проверки и восстановления окружения Бтв, и как ча... большой текст свёрнут, показать
     
     
  • 3.46, Michael Shigorin (ok), 19:50, 25/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> А если системный пакетный менеджер удалит зависимость, которая из-за этого не была
    >> зероинсталлирована?
    > На этот случай есть процедуры проверки и восстановления окружения. Бтв, и как
    > часто в стабильных ветках бинарных дистрибутивах происходят такие "несовместимые"
    > обновления? Чуть менее, чем никогда.

    Даже при неизменности стабильной ветки системный пакет может оказаться невостребованным с точки зрения администратора/aptitude.

    >> А если обновление зероинсталлированной зависимости поломает кучу зераинсталлированных
    >> кривых программ (как libc поломал флеш)?
    > А причём здесь Zero Install? Это за пределами ответсвенности пакетного менеджера.
    > Любого.

    Случай с flash -- пожалуй, да, а вот ряд вариаций на тему съезда ABI конкретно в альте уже ловится (set-versions).

    > Где по-разному?

    Где-то firefox, где-то iceweasel, где-то mozilla-firefox...  тут относительно просто только с библиотеками, если ориентироваться исключительно на soname.

    >> Не проще ли тогда уж подгружать готовый образ диска для виртуалки, со
    >> всем готовым окружением?
    > Да, вот только виртуализации нам и не хватало. Легковесно, надёжно, удобно и
    > безопасно, чо.

    То же самое можно сказать и про 0install с иронией на второй части рожи... (.

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

     
     
  • 4.50, коксюзер (?), 12:20, 26/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Это за пределами ответственности ZI Если системное окружение не согласуется с п... большой текст свёрнут, показать
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру