Недавно я обнаружил то, что на сайте firefox.com нет 64-битной версии браузера Mozilla FireFox для Linux. Не обнаружил я и 64-битной версии браузера для других систем. Если посмотреть сайт лучше, можно обнаружить 64-битные сборки альфа-версий - а стабильных версий нет. Тогда я решил собрать 64-битную версию самостоятельно. Разумеется, и 32-битная версия будет работать с 64-битной системой, если установить 32-битные библиотеки. В Ubuntu они занимают около 100 (ста) мегабайт. Если вы пользуетесь DooM III или Wine, 32-битные библиотеки, скорее всего, уже установлены - и проблемы нет... А что если они не установлены и устанавливать их у вас нет никакого желания?
Кстати, даже если у вас установлен 64-битный браузер, то для того чтобы воспользоваться 32-битным Flash-проигрывателем надо установить 32-битные библиотеки. Надоели... Но выход есть! Можно или воспользоваться альфа-версией 64-битной библиотеки Adobe Flash, или Gnash - свободным эквивалентом Flash-плееру. Последний работает в том числе и с Konqueror.
Я разобрался со сборкой FireFox из исходного кода и описал этот процесс вам - собственные бинарные сборки я размещаю на файлообменнике, найти ссылки можно найти в одной из тем на сайте linsovet.com. Архивы приведены к виду архивов на сайте firefox.com с тем отличием, что не удалён английский словарь, а также многие поисковые сайты из выпадающего списка. Кроме того, 64-битный Flash-проигрыватель уже вложен и сразу работает - размер архива увеличился лишь на 3 мегабайта, а распакованная директория на 9 мегабайт.
Сразу предупреждаю: никаких проверок работоспособности я не проводил. Флаги сборки и оптимизации не трогал и не экспериментировал. В официальном 32-битном FireFox есть CrashReporter, а у меня нет, а может быть, его можно включить. В моей сборке есть xslt-qa.jar, а в официальной нет - может быть, это только для моей машины, в которой есть libxslt. Про то, что логотип FireFox защищён несвободной лицензией тоже знаю, и всё же целенаправленно поменял в своей сборке логотип Shiretoko на логотип FireFox - знайте, так делать нехорошо.
Кроме получения недоступной лёгкими путями 64-битного FireFox, компиляция также даёт увеличение скорости работы благодаря оптимизации именно под ваше оборудование - но я уверен, что для такой программы, как интернет-браузер, этот прирост скорости не окажется существенным.
Итак, для начала надо разобраться с зависимостями. Это легче всего сделать в таких дистрибутивах, как Debian и Gentoo. В Debian-подобных дистрибутивах надо лишь выполнить команду от имени суперпользователя:
apt-get build-dep firefox xulrunner
Чтобы сразу и без проблем установить зависимости в Ubuntu 9.04, я вместо firefox написал firefox-3.5 - в репозитории была и остаётся только четвёртая бета-версия. Кроме того, я находил сторонний репозиторий с FireFox 3.5, http://ppa.launchpad.net/ubuntu-mozilla-daily/, (который, к сожалению, на тот момент был неработоспособен и не устанавливал новейшего FireFox. Как там обстоят дела сейчас я не знаю, так как я уже достиг своей цели), и устанавливал зависимости также для пакетов оттуда.
Если у вас другой дистрибутив, предлагаю устанавливать зависимости руководствуясь файлом README или просьбам компилятора.
Чтобы скачать исходный код Mozilla FireFox, можно зайти на ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/, перейти в директорию с самой последней версией, затем в src и загрузить архив tar.bz2. Затем архив надо распаковать и, убедившись в том, что на разделе есть свободные 900 мегабайт, выполнить команду
make -f client.mk build
Так написано в руководстве по адресу https://developer.mozilla.org/en/Build_and_Install . Но команда не работает. Поискав ошибку в Google, я обнаружил решение. После того, как команда выдаст ошибку, надо выполнить ./configure --enable-application=browser и повторить первую команду.
Компиляция занимает 40 минут на моём AMD Athlon 64 X2 7850+, 2 гигабайтами памяти DDR2 1066 на разделе ReiserFS.
После завершения компиляции можно запустить браузер. Он находится в директории dist/bin/, запускать надо файл firefox. Однако остаётся несколько нерешённых задач. Вместо FireFox почему-то запускается Shiretoko (кодовое название версии 3.5, как я понимаю...), хотя функциональность та же. Надо вернуть идентификатор браузера, логотип и название, а также удалить лишние 850 мегабайт отработанного исходного кода.
Прежде всего, избавляемся от символических ссылок, так как каждый второй файл ведёт на несколько директорий назад. Как это сделать командой cp я так и не разобрался (профессионалы, подскажите работающий способ!), поэтому я запустил winefile, выбрал каталог bin, и скопировал его через Файл > Копировать... в другое место.
Символические ссылки пропали, однако исполняемые файлы потеряли параметр исполняемости! Дело в том, что в файловых системах Windows-систем такого параметра файлов не существует. Заходим в каталог с FireFox, выделяем все бинарные файлы и скрипты запуска, нажимаем на них правой кнопкой мыши и выбираем "Свойства". Вкладка "Права". Ставим галочку "Позволять выполнение файла как программы" в случае если Gnome, или "Is executable" в KDE.
Теперь можно удалить все директории, кроме нашего нового bin.
Как добавить русский язык, идентификатор и название? Загружаем 32-битную версию FireFox. Открываем 2 каталога, с нашим FireFox, и 32-битным. Заменяем всё содержимое каталога chrome содержимым русского FireFox. То, чему замены нет, не удаляем. Ни в коем случае не трогаем каталог components.
Заменяем все файлы в каталоге defaults. Копируем русский словарь в dictionaries - при желании можно стереть английский. Не трогаем extensions. Заменяем все три файла в каталоге greprefs. Заменяем icons и modules. Ничего не заменяем в plugins, ведь там 64-битные библиотеки. При желании туда можно скопировать 64-битный Flash-проигрыватель. Не трогаем res. Заменяем всё в searchplugins, при желании можно всё оставить как было или наоборот, удалить всё, что было. Не трогаем updates. Меняем файлы application.ini, browserconfig.properties, firefox, old-homepage-default.properties, platform.ini, README.txt, run-mozilla.sh, updater.ini, update.locale, добавляем файл Throbber-small.gif (хотя я не знаю, нужен ли он...).
Всё готово. Осталось переименовать каталог bin в firefox и заархивировать, дав ему имя, например, firefox-3.5.5-x86_64.tar.bz2.
URL:
Обсуждается: http://www.opennet.me/tips/info/2222.shtml