Инструкция, как поднять локальный сервер обновлений для Firefox.
В наличии имелся сервер с Debian Lenny. На него был поставлен apache2 и libapache2-mod-php5sudo apt-get install apache2
sudo apt-get install libapache2-mod-php5В файле /etc/apache2/sites-available/default директива AllowOverride None была изменена на AllowOverride FileInfo
В каталоге /var/www был создан каталог /var/www/update/Firefox/3.0.10/win32/ru/release и туда положены файлы:root@db-fw:/var/www/update/Firefox/3.0.10/win32/ru/release# ls -la
-rw-r--r-- 1 root root 2188005 2009-05-28 11:22 firefox-3.0.10-3.0.11.ru.win32.partial.mar
-rw-r--r-- 1 root root 10189913 2009-05-28 11:25 firefox-3.0.11.ru.win32.complete.mar
-rw-r--r-- 1 root root 59 2009-05-28 10:12 .htaccess
-rw-r--r-- 1 root root 658 2009-05-28 11:20 update
-rw-r--r-- 1 root root 650 2009-05-28 12:12 update.xmlФайлы firefox-3.0.10-3.0.11.ru.win32.partial.mar и firefox-3.0.11.ru.win32.complete.mar
были взяты с ftp://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/3.0.11.../Файлы .htaccess и update были взяты с https://developer.mozilla.org/en/Setting_up_an_update_server без изменений.
.htaccess:
<FILES update>
ForceType application/x-httpd-php
</FILES>PHP скрипт update:
<?php
header("Content-type: text/xml");$url_array=explode("/",$_SERVER["REQUEST_URI"]);
$noidea=$url_array[2];
$product=$url_array[3];
$version=$url_array[4];
$build_id=$url_array[5];
$build_target=$url_array[6];
$locale=$url_array[7];
$channel=$url_array[8];
// filename is totally ignored
$filename=$url_array[9];
$updatefile = "update.dir/$noidea/$product/$version/$build_id/$build_target/$locale/$channel/$filename";if (file_exists($updatefile)) {
$handle = fopen($updatefile, "r");
$contents = fread($handle, filesize($updatefile));
echo "$contents";
fclose($handle);
} else {
echo '<?xml version="1.0"?>';
?>
<updates></updates>
<?
}?>
Потом был создан файл update.xml:<?xml version="1.0"?>
<updates>
<update type="minor" version="3.0.11" extensionVersion="3.0.11" buildID="2009042316"
detailsURL="http://192.168.0.1/ru/firefox/3.0.11/releasenotes/">
<patch type="complete" URL="http://192.168.0.1/update/Firefox/3.0.10/win32/ru/release/fi...
hashFunction="SHA1" hashValue="1a08be9c203da5fb20f632e970e23331bb21b995" size="10189913" />
<patch type="partial" URL="http://192.168.0.1/update/Firefox/3.0.10/win32/ru/release/fi...
hashFunction="SHA1" hashValue="67683707609194c20188459da2ecfe9853122de4" size="2188005" />
</update>
</updates>Хэш функции были вычислены с помощью sha1sum.
Потом я открыл русский Firefox 3.0.10 для Windows и создал строковый параметр app.update.url.override со значением
http://192.168.0.1/update/Firefox/3.0.10/win32/ru/release/up... и проверил наличие обновлений.
Firefox успешно нашёл обновление для 3.0.11 и успешно его применил.
URL: http://blog.unghost.ru/2009/05/firefox_28.html https://developer.mozilla.org/en/Setting_up_an_update_server
Обсуждается: http://www.opennet.me/tips/info/2091.shtml
а аналогичную вещь можно сделать для дополнений - чтобы фаерфокс тягал их не с интернета а слокального сервера - строго заранее созданный набор
если еще придумать, как сделать так, чтобы не надо было прописывать в каждом about:config параметр со своим именем сервера.вот параметр по умолчанию:
https://aus2.mozilla.org/update/3/%PRODUCT%/%...еще статью было бы не плохо дополнить скриптом, проверяющим обновления на сайте мозиллы
сейчас распаковал exe файл фокса простым просмоторщиком архивов и нашел там /localized/browserconfig.properties.
Думаю, что можно прописать туда настройку на свой сервер и после этого устанавливать фокс с этого exe файла.
через гпо или реестр данное колдовство можно сделать?
ну или батничком каким например
фокс не хранит информации в реестре.
Начиная с версии 3.5 можно будет делать свои сборки фокса ( http://www.opennet.me/opennews/art.shtml?num=22081 ), так что инструкция как нельзя кстати. Спасибо!
>Начиная с версии 3.5 можно будет делать свои сборки фокса ( http://www.opennet.me/opennews/art.shtml?num=22081
>), так что инструкция как нельзя кстати. Спасибо!Начиная с версии 0.0.0.0.0.0.0.0.1-pre-beta-alpha-test.rc0.01 можно делать свои сборки :)
А как в данном случае обновлять не имея прав админа? Допустим в офисе. Я ставлю и обновляю все проги самописными скриптами на WSH, установка при старте кампа. Установочный экзешник Фаерфокс можно распаковать и огнелис автоматически ставится с ключом /S
Вот дополнения было б неплохо так автоматизировать.
Кстати, сам фаерфокс не юзаю и не проверял, но считаю, что браузер хранит настройки так же как и птицка в текстовых файлах, соответственно при логине юзера можно лопатить (да хоть тем же WSH) файл настроек и менять нужный параметр. Я аналогичным образом генерю профиль птицки для юзера, если у него обнаружено мыло в АД (с правильными подписями, выводимым именем и пр).ЗЫ, в упор не вижу обновление 11 %)
Прошу прощения, про неВиндус я как-то забыл )))
Для жителей Томска был вроде бы такой проект. firefox.opentomsk.net
Дэцкий сад, не меньше...
Правильно настроенный Squid за вас всё сделает!
Стоит squid. Какие настройки?
Взял бы да ткнул носом... В какую сторону копать?