Преднастройка продуктов Mozilla для корпоративной среды это просто


    Обычно после установки продуктов Mozilla в корпоративной среде требуется дополнительно установить:
    • стандартный для компании набор плагинов
    • сделать типовые настройки


    Почему бы не интегрировать необходимые плагины и типовые настройки в дистрибутив?
    Цель данной статьи — показать как можно перепаковать дистрибутив Mozilla, добавив необходимые компоненты.

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

    Но наша цель — подготовить внутренний дистрибутив для своей организации, так что всё в порядке.



    Для перепаковки потребуется:
    Дистрибутив продукта (в данном примере Firefox) — www.mozilla.org/en-US/firefox/organizations/all
    Архиватор 7zip — www.7-zip.org/download.html
    SFX модуль для 7zip — svn.smedbergs.us/cck-repack/trunk/resources/7zSD.sfx

    Подготовка.

    «Однажды поймал Герасим золотую рыбку.
    И как не пытался объяснить, что хочет большой дом, крутую машину и красавицу-жену — получил только трёх коров.
    Грамотно сформулированное — половина сделанного »

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


    Распаковка.

    Нет ничего проще: переходим в папку со скачанным дистрибутивом и распаковываем его 7zip.
    У меня получилась такая команда:
    "C:\Program Files (x86)\7-Zip\7z.exe" x .\"Firefox Setup 24.4.0esr.exe" -o"Firefox Setup 24.4.0.esr"
    


    Модификация.

    В после распаковки получившейся папке нас в первую очередь интересует путь core\browser\extensions. Для Firefox до версии 24esr и для Thunderbird этот путь будет core\extensions (за не ESR версиями я не слежу).
    Если подложить в эту папку расширения, то они интегрируются в пересобираемый дистрибутив. Я добавляю расширение Mozilla GPO plugin для того, чтобы в дальнейшем можно было управлять любыми настройками из групповых политик. Можно подложить сразу xpi файл, можно его распаковать и подложить папку расширения. Тут возможна проблема с именованием файла/папки — см. решение проблем в конце статьи.

    Также можно задать некоторые настройки по-умолчанию.
    Лично я предпочитаю спускать их через GPO, но возможно дистрибутив будет устанавливаться на ПК не в домене, поэтому пренебрегать этими настройками тоже не стоит.
    Для этого в папке core\defaults\pref необходимо создать файл с установками по-умолчанию. Файл обязательно должен быть в кодировке UTF-8 и назвать его стоит all-<имя компании>.js. Например all-contoso.js:
    pref("extensions.autoDisableScopes", "11");
    

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

    Запаковываем.

    После модификации переходим в папку с исправленным дистрибутивом (там где папки core, win32 и setup.exe) и запаковываем его в архив. У меня получилась такая команда:
    "C:\Program Files (x86)\7-Zip\7z.exe" a -r -t7z app.7z -mx
    


    Создаём в той же папке файл app.tag (в кодировке UFT-8!), который укажет sfx что запускать после распаковки архива, с содержимым:
    ;!@Install@!UTF-8!
    Title="Firefox 24.4.0 ESR customized"
    RunProgram="setup.exe"
    ;!@InstallEnd@!
    


    Копируем в эту же папку 7zSD.sfx.

    «Склеиваем» sfx-модуль, app.tag и архив приложения:
    copy /B 7zSD.sfx+app.tag+app.7z "Firefox Setup 24.4.0.esr.custom.exe"
    


    Готово.

    Теперь после установки из созданного дистрибутива:
    • Автоматически установятся все включенные дополнения
    • Во всех профилях пользователей будут применены ваши настройки по-умолчанию (Если в профиле явно не указано значение настройки)


    Возможные проблемы и их решение.

    Если не применяются Ваши настройки по-умолчанию:
    1. Проверьте название и расположение файла настроек в дистрибутиве (нежелательны национальные символы, пробелы и спецсимволы в имени файла)
    2. Проверьте кодировку файла настроек по-умолчанию (Должна быть только UTF-8 без BOM)


    Если не «подхватились» интегрированные плагины:
    1. Проверьте значение параметра extensions.autoDisableScopes. Если запрещены плагины из папки Firefox, то пользователю будет сообщение, что кто-то пытается установить плагин.
    2. Проверьте, что Вы правильно назвали файл (или папку плагина). Файл плагина должен иметь имя вида id.xpi, где id — идентификатор плагина как в install.rdf в поле em:id внутри плагина. Имя папки плагина должно совпадать с его id.
      Самый верный путь обеспечить выполнение этого условия: установить плагин через интерфейс управления плагинами Mozilla, а потом скопировать папку (или файл) плагина из профиля пользователя в создаваемый корпоративный дистрибутив.


    P.S. «Вдохновение» черпал из статьи:
    mike.kaply.com/2007/07/27/manually-repackaging-the-firefox-installer-on-windows
    Но с пришлось дополнительно разобраться с названием файла для настроек по-умолчанию, а также разобраться почему некоторые плагины не хотели интегрироваться.
    Поделиться публикацией

    Комментарии 25

      +6
      Спасибо за статью! Но можно я тут побрюзжу в уголочке? Я немного, с полведерка :)

      Вот почему производители браузеров так легко забивают на корпоративный сегмент рынка? Из всех современных браузеров (не считая IE) только у Chrome есть .msi-инсталлятор и поддержка GPO «из-коробки». И ладно GPO — это относительно сложная вещь, но отсутствие msi-инсталлятора я понять не могу. Почему-то маленькие и нищие на вид open-source проекты могут себе позволить паковать свой продукт в msi, а гиганты вроде Opera, Яндекса и Mozilla — не могут.
      Сотни миллионов человек по всему миру, с понедельника по пятницу проводят на своих рабочих местах в офисах по 8-9 часов, и немалая часть этого времени тратится на интернет-браузинг. Как можно упускать такой кусок рынка? Очевидно, конечно, что на многих предприятиях есть сервисы, завязанные на IE, на многих предприятиях браузинг вообще ограничен. Но остаются все равно десятки миллионов неохваченных пользователей. Почему производители за них не борются? Неужели так дорого и сложно тратить от силы десяток часов работы одного программиста в месяц на поддержание альтернативного msi-инсталлера?
        +1
        Полностью поддерживаю. В итоге мы используем FM Firefox для развертывания.
          +1
          Насколько я помню, этот репак Firefox-а при развертывании не устанавливает службу автообновления?
            0
            Фи… у них adm шаблон политики и ограниченный набор доступных настроек… ;)
            0
            Мы уже наловчились собирать себе .msi из чего угодно.
            И, оказалось, что самое гибкое и прозрачное — это WiX Toolset, хотя и много руками приходится писать.
            Не останавливает «корпоративщиков» отсутствие msi-пакетов, но лучше бы они были.
              0
              Не останавливает «корпоративщиков» отсутствие msi-пакетов, но лучше бы они были.

              Ну объясните для чего?! Чтобы устанавливать и обновлять из групповой политики? А групповая политика даёт вам обратную связь об ошибках установки? Гарантирует, что в компании (хотя бы в 90% случаев) ПО обновится в заданный период (например за ночь)?
                +1
                А вы чем пользуетесь?
                Для небольших предприятий, по-крайней мере, в моем случае, установка .msi через GPO — самое оно. У меня не бывает задач гарантированного развертывания или обновления в сжатые сроки. Ну, на худой конец, можно использовать скрипты, но писать и поддерживать их — та еще заноза в заднице.
                  0
                  А вы чем пользуетесь?

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

                  В другом месте на Хабре я уже писал по-поводу таких систем:
                  Специализированных систем для управления парком ПК и массовой установки ПО хватает:
                  System Center Configuration Manager
                  Symantec Endpoint Management (Altiris)
                  LANDesk Management Suite
                  Karpersky Security Center позволяет разворачивать ПО
                  и много остального на любой вкус и кошелёк.

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


                  Для небольших предприятий, по-крайней мере, в моем случае, установка .msi через GPO — самое оно.

                  Есть поговорка: «Плох тот казачёк, который не мечтает стать атаманом.» ;) Наша компания тоже не всегда была большой. Несколько лет после начала интенсивного роста мы потратили и «перековку» IT инфраструктуры под растущие масштабы. Но до сих пор в некоторых местах приходится поддерживать наследие прошлого.

                  У меня не бывает задач гарантированного развертывания или обновления в сжатые сроки

                  Представьте типовую задачу: обновление релиза 1С на over 500 ПК (цифру занизил на порядок — но уже в таком объёме будет проблема). Обновить надо всех разом — не обновлённые не смогут работать.

                  Я не призываю бросать всё и покупать систему за деньги. Я просто указываю на необходимость проектировать системы так, чтобы они могли легко масштабироваться.
                    0
                    Есть поговорка: «Плох тот казачёк, который не мечтает стать атаманом.» ;)

                    Это да, но моя текущая организация ощутимо расти не будет — слишком специфическая и узкая рыночная ниша. На это даже закладываться не стоит.
              0
              На самом деле я не очень разделяю мнение о необходимости msi пакетов… Современные системы установки и обновления ПО прекрасно обходятся без них.
              И ладно GPO — это относительно сложная вещь

              Поверьте — это гораздо проще MSI пакета!
                +2
                Черт с ними с MSI, почему у какой-нибудь adobe нет возможности развернуть внутренний сервер обновлений? Или подружиться с Microsoft и обновляться через WSUS? Java Runtime туда же. Это ведь вещи которые реально стоят на 99% ПК.
                  +2
                    0
                    О как, спасибо. Почитаю. Ранее встречал только решения встраивания в WSUS через костыли.
                    А может подскажете с ходу, при беглом прочтении не встретил упоминаний Flash и Reader. Оно там есть?
                      0
                      Gосмотрите мои статьи про обновелние софта через всус. У флеша есть нативный родной устновщик msi. На счет Акробат ридера — не знаю, ну внутри exe точно есть msi. C JRE то же самое, внутри мси и один каб файл. В общем все давно придумано, было бы желание.
                  +1
                  Современные системы установки и обновления ПО прекрасно обходятся без них.

                  Современные системы стоят денег, и зачастую немалых. Меня распространение софта через GPO в моих условиях полностью устраивает, и покупать что-то дополнительно только для установки .exe-инсталлеров большого смысла нет.
                  0
                  Подкину на другую чашу весов: GoogleUpdate.exe не умеет proxy вообще, в том числе TMG.
                  0
                  По своему опыту могу сказать, что thunderbird очень плохо работает с большими ящиками. После 2ГБ начинаются ужасные лаги и тормоза.
                  Лучше уж какая-нибудь zimbra или communigate с веб-клиентом.
                    0
                    Да ладно?
                    Не поленился, посмотрел.
                    Вот прямо сейчас у десятка пользователей ящики больше 5ГБ, у пары человек 7ГБ и у одного 11ГБ.
                    Причем некоторые любят все письма (десятками тысяч) держать прямо во «Входящих».
                    И никаких проблем с этими размерами нет.
                    Уточню, это IMAP.

                    Уточните, где хранится почта, в случае «После 2ГБ начинаются ужасные лаги»
                      +2
                      p.s. Нашел рекордсмена с 95К писем в папке, ладно хоть не во «Входящих».
                      Пойду поинтересуюсь как оно открывается и нахрена ему столько.
                      0
                      Есть такая проблема. Касается только локального хранилища, поэтому IMAP ящики Вас спасут.
                        0
                        Да, настроено было именно по pop3.
                          0
                          Там всё упирается в проблему большого текстового файла.
                          Лечится превентивными мерами:
                          Настройка регулярного сжатия папки
                          А когда совсем «встаёт колом»:
                          Просто от текстового файла отрезается некоторый большой объём старых писем и помещается в отдельную «архивную» папку.

                          Большинство по-настоящему больших ящиков у нас на IMAP поэтому такие проблемы не часты и тех. поддержка их быстро решает. Кроме того у нас пользователи активно используют фильтры для сортировки корреспонденции по папкам. Вкупе с регулярным сжатием папок (особенно «Входящие») это практически сводит проблему на нет.
                      0
                        +1
                        А он разве не только для продуктов CS линейки?.. В то время как в корпоративном сегменте больше требуется Adobe Reader и иногда Flash Shockwave, AIR.
                        0
                        Для этих продуктов пытался прикрутить к WSUS программу System Center Updates Publisher — но что-то не заработало. Может у вас получится. Она бесплатна

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

                        Самое читаемое