Разведение огнелисов в домашних условиях
или установка firefox из tar.bz2 архива, а также способ всегда иметь свежего лиса к завтраку
firefox и thunderbird можно установить в Линуксе из репозитория (через synaptic или apt-get, например), а можно — напрямую из tar.bz2 архива с официального сайта mozilla. Второй способ требует немножко больше работы, зато позволяет после установки иметь всегда свежий firefox без возни со сторонними репозиториями и с минимумом хлопот.
Статья разбита на несколько частей — сначала идут довольно пространные объяснения о том где и что лежит, как установить firefox из архива (распаковать и положить в /opt), как сделать firefox браузером по умолчанию (так, чтобы клик по ссылке на pidgin или в thunderbird открывал именно firefox) и как обновлять firefox установленный таким образом (очень просто на самом деле). В самом конце я кратко перечислил все шаги в небольшой шпаргалке.
Руководство небольшое, не претендует на полный обзор темы, рассчитано на debian или ubuntu.
Любые замечания и уточнения будут приветствоваться.
- Что где лежит в Линуксе
- Как установить firefox в систему
- Как обновлять файрфокс?
- Как интегрировать firefox в систему?
- Итого
Что где лежит в Линуксе
В линуксе программа, ее ресурсы (иконки, библиотеки и так далее), пользовательские настройки лежат в разных местах. Это связано с тем, что библиотеки, например, могут использоваться несколькими программами.
firefox в этом отношении «сама по себе» — архив tar.bz2 содержит в себе все необходимое для запуска браузера. То есть скачав и распаковав его в какую-нибудь папку — можно просто кликнуть по файлу firefox и таким образом запустить браузер. Или войти в эту папку через терминал и набрать в командной строке firefox — что тоже запустит браузер.
Откуда бы браузер не запустился — он будет искать пользовательский профиль — папку, в которой лежат пользовательские настройки — в частности расширения, файлы prefs.js и user.js, о которых я уже писал. Пользовательские профили как правило лежат в папке
~/.mozilla/firefox
Обычно в этой папке лежат папки со случайными именами (например 3u1mew8a.default), каждая из которых представляет собой отдельный профиль, плюс там находится файл profile.ini, в котором записано какой из файлов запускать по умолчанию. Запустившись, firefox будет искать их именно там. Если у вас уже есть свой профиль — его можно положить в эту папку и после этого или отредактировать profile.ini вручную или запустить firefox из командной строки с ключом -ProfileManager
firefox -ProfileManager
Что позволит выбрать нужный профиль.
Как установить firefox в систему
Поскольку firefox работает «сам по себе», автоматом подхватывая профили из ~/.mozilla/firefox, то в принципе можно просто скачать tar.bz2 с официального сайта (желательно именно оттуда — во-первых там все самое свежее, во-вторых это гарантия от того, что туда не посадят что-нибудь вредоносное). Распаковав архив в любую папку можно просто запускать firefox оттуда.
Возможно, в некоторых версиях линукса придется дополнительно указывать что файл firefox является исполняемым (зайти в папку и из командной строки набрать sudo chmod a+x firefox или сделать правый клик на этом файле в файловом менеджере и поставить соответствующую галочку в правах) — но по моему опыту все работает и так.
Такая работа в «ручном режиме» вполне нормальна, но неудобна по нескольким причинам. Во-первых, в домашней папке болтается лишняя папка, которая либо «путается под ногами», либо прячется где-нибудь на задворках — как раз в тот момент, когда ее нужно найти. Во-вторых, чтобы запустить firefox нужно каждый раз отыскивать эту папку и кликать по исполняемому файлу — что неудобно. Можно, конечно, решить эту проблему в виде «костылей» — ярлыков и так далее и так далее, но это не наш метод.
В линуксе есть специальная папка для программ, которые подобно firefox несут с собой все свои файлы (из наиболее известных программ — firefox, thunderbird и Open(Libre)Office) это папка:
/opt
Поэтому распакуем firefox туда. Скачиваем архив с сайта, распаковываем его с помощью любого распаковщика (если в системе не установлено ничего графического — можно сделать это через uz просто набрать в командной строке:
uz firefox-4.0.1.tar.bz2
Получившуюся папку firefox нужно скопировать в /opt
Тут есть нюанс — работать с /opt позволено только администратору, поэтому все операции исполняем через sudo. Еще один нюанс — если у вас уже установлена firefox (или iceweasel, если вы работаете в debian) — лучше ее удалить. Потому, что в противном случае в /opt уже будет папка firefox.
Итак. Мы скачали и распаковали firefox, например в папку ~/firefox и убедились, что в /opt нет папки firefox.
Далее:
sudo cp -r ~/firefox /opt/firefox
upd: Сэр Ollycat сделал очень верное замечание в комментариях, которое у меня не доходили руки внести в заметку. Исправляюсь.
Немного нехорошо развернуть в домашнюю папку, а потом скопировать в opt. Ибо первое действие создаст файлы с юзером из под которого разархивирование было сделано. А класть такие файлы в opt вообще не красиво. Так что я бы сделал что-то вроде:
cd ~/
wget -c http://…../firefox-4.0.1.tar.bz2
cd /opt
sudo tar -jxvf ~/firefox-4.0.1.tar.bz2
Тогда мы получаем нормальную папку firefox с правами рута на ней.
Все. Лиса сидит там, где ей положено. Теперь сделаем так, чтобы ее можно было запускать из командной строки.
Когда вы что-то набираете в командной строке — интерпретатор ищет исполняемый файл в нескольких папках. Например в ~/bin, /bin и так далее. Ссылки на пользовательские программы хранятся в /usr/local/bin.
Поэтому мы создадим в этой папке ссылку на исполняемый файл firefox:
sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox
И еще одну — в папке /usr/bin:
sudo ln -s /opt/firefox/firefox /usr/bin/firefox
Теперь по набору в командной строке (или в каком-нибудь автозапускателе типа gmrun или в том, что вызывается по Alt+F2) firefox запустится нужный браузер. Папка с firefox не путается под ногами и лежит там где и положено лежать папке приличной программы.
Как обновлять файрфокс?
С обновлениями все просто. Нужно запустить firefox с правами суперпользователя и обновить ее так, как это делалось в windows.`
gksudo firefox
или
sudo firefox
Почему именно с правами суперпользователя? Из соображений безопасности. Когда firefox закачает новую версию ей придется заменить старый бинарный файл (старый экзешник, как сказали бы пользователи windows), а это можно сделать только если ты запущен с правами суперпользователя. И это хорошо — поскольку что-нибудь вредоносное с правами обычного пользователя до исполняемого файла не доберется.
Если кто-то запутался в менюшках — сейчас файрфокс обновляется через Справка -> О firefox и в выскочившем окошке — нажать кнопку «проверка обновлений».
Как интегрировать firefox в систему?
За интеграцию в систему (так чтобы по клику по ссылке в pidgin открывался именно firefox) отвечает система update-alternatives — которая подробно рассмотрена тут, а вот тут лежит русский man.
Если говорить коротко — эта система держитё каталог «альтернатив» — неких сферических абстракций пользовательских программ в вакууме типа «терминал», «браузер», «файловый менеджер». И через update-alternatives можно назначить кто из установленных в системе множества терминалов является основным. Пакеты альтернатив хранятся здесь:
ls /etc/alternatives/
Наша задача — назначить firefox как основной x-www-browser — тогда ссылки запущенные из других приложений будут передаваться именно ему. А если набрать где-нибудь x-www-browser — то запустится именно firefox (а не chrom, lynx или кто-нибудь еще).
Посмотреть текущие альтернативы для браузеров можно так:
update-alternatives --list x-www-browser
А интегрировать туда наш свежеустановленный firefox «с нуля» — так:
sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/firefox 60
Здесь:
--install - ключ для инсталляции "новой альтернативы",
/usr/bin/x-www-browser - ссылка на категорию
x-www-browser - имя категории
/usr/bin/firefox - линк на линк к бинарному файлу
60 - приоритет
Приоритет задает приоритет выбора альтернативы (там может быть несколько разных программ с разным приоритетом запуска) чем больше число, тем выше приоритет. Если одна программа не может запустится или неудачно запускается — то управление передается программе следующей по приоритету. 60 обычно достаточно, но если что — можно добавить и больше.
Убеждаемся что все поставили верно:
update-alternatives --list x-www-browser
В списке должен присутствовать firefox. Например, у меня он выглядит так:
/usr/bin/chromium-browser
/usr/bin/firefox
С этого момента firefox считается браузером по умолчанию.
Итого
Обобщенный алгоритм:
Удалить firefox (iceweasel), который уже установлен в системе.
Скачать с сайта мозиллы .tar.bz2 архив.
Распаковать его. Должна получиться папка firefox.
uz firefox-4.0.1.tar.bz2
Папку переложить в /opt. Например, для папки firefox лежащей в корне домашней папки:
sudo cp -r ~/firefox /opt/firefox
Либо проделать это все по вышеописанному и более правильному рецепту сэра Ollycat:
cd ~/
wget -c http://…../firefox-4.0.1.tar.bz2
cd /opt
sudo tar -jxvf ~/firefox-4.0.1.tar.bz2
Бросить линки в /bin папки:
sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox
sudo ln -s /opt/firefox/firefox /usr/bin/firefox
Сделать firefox «умолчальным браузером системы»:
sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/firefox 60
Убедиться, что все получилось:
update-alternatives --list x-www-browser
Обновление файрфокса — запустить его с правами суперпользователя:
gksudo firefox
или
sudo firefox
Обновить. Перезапустить.
Для thunderbird все делается аналогично, но я исключаю шаг с update-alternatives, поскольку интегрировать почтовый клиент мне в общем-то некуда.

[…] firefox из tar.bz2 […]
Одно маленькое замечание: я бы не рекомендовал использовать uz. Во первых это обычная обертка из шелла вокруг гнушного tar-а. Лучше привыкать использовать все же tar. Во вторых uz входит в комплект mtools, его нет в стандартной поставке дистрибутивов, если не установлен данный пакет. В общем некошерный инструмент. ;)
Ага. Я вечером поправлю :) К tar’у я пока непривычен, увы. Но с замечанием согласен.
Остальное на уровне? Или еще есть «дырки»? :)
Да ладно! он же простой как грабли. :) Вот cpio — тот замороченый маленько. ;)
Ну как тебе сказать… Вообще я бы так не делал. ;) ИМХО иметь самый свежий ff не особо надо, а если обнаруживается критическая уязвимость, то все дистры как правило очень быстро на это реагируют. Но если действительно есть причина, как например в дистре нет руссифицированной лисы, а юзеру это очень надо, то я бы делал установку в домашний директорий. А у юзера правил в менюхах «шаткаты» для запуска.
Если уж очень надо поставить «в систему», то я бы лучше «оборачивал» этот архив в штатный пакет и ставил его шататными средствами. Благо это не проблема. К примеру в debian-подобных дистрах (за все не скажу, но в убунту точно) есть чудесная утилита алиен:
man:
alien is a program that converts between Red Hat rpm, Debian deb, Stampede slp, Slackware tgz, and Solaris pkg file formats.
Ею можно очень бодро перегнать архив в deb пакет. Это было бы наверное правильнее, чем копировать руками в opt.
Но это, как я сказал, ИМХО.
Что касается непосредственно написанного тобой… Немного не хорошо развернуть в домашнюю папку, а потом скопировать в opt. Ибо первое действие создаст файлы с юзером из под которого разархивирование было сделано. А класть такие файлы в opt вообще не красиво. Так что я бы сделал что-то вроде:
cd ~/
wget -c http://…../firefox-4.0.1.tar.bz2
cd /opt
sudo tar -jxvf ~/firefox-4.0.1.tar.bz2
Тогда мы получаем нормальную папку firefox с правами рута на ней.
Ну вот как-то так. :)
Спасибо огромное. О правах я даже не задумывался :) Вот что значит профессиональный глаз :)
Вот со свежим файрфоксом у меня немного другая точка зрения. Например, у меня сейчас в крэнче айсвизел 3.5, а хочется уже работать с четверкой. Но так, чтобы она не путалась у меня «под ногами». Кстати, я в /opt складываю и freemind — тоже последней версии, поскольку «восьмерка» уж очень убога по функционалу.
За алиен еще одно спасибо — я знал его только по старой версии которая конвертила (не всегда удачно, насколько я помню) rpm’ы. Непременно посмотрю.
Ну и буду фиксить пост с учетом замечаний. Только чуть позже — сейчас совершенно замотался с работой.
Ну как я уже сказал необходимость этого каждый решает для себя сам. ;) Так что если надо тебе — значит надо. :) А если надо — наилучший вариант все же сделать полноценный deb пакет и поставить его.
В общем всегда пожалуйста. Комменты можешь вычистить после правки, что бы все было красиво и аккуратно. ;)
:)
Насколько я знаю, это и есть debian-way :) Интересно, если я поставлю ff через dpkg — оно не будет конфликтовать при независимом обновлении ff и запуске apt-get’а на апгрейд системы?
Таладно. Я ж сразу написал что критика и замечания приветствуются :) И, кстати, порадовался тому, что таки спромогся на такой пост — хотя бы для того, чтобы узнать как нужно делать правильно :)
По идее, если в сделанном тобой deb-е будут файлы, которые записываются в другое место, нежли файлы штатного ff (а это так и должно быть, ты же собираешься его в /opt совать). И если не прописывать конфликт руками в этот deb, то будут оба жить и поживать по идее. :)
На счет того, что ты хотел узнать как правильно… Я лишь свое мнение высказал, я не знаю на сколько это правильно. ;)
К стати не хорошо как-то комменты выглядят, когда трейд глубоки поулчается: очень узко, даже страшно представить что будет дальше. :) Чет тебе надо с оформлением подумать видимо…
Ну это не от меня зависит. Во всяком случае, пока я пользуюсь бесплатным вордпрессом.ком Уже благо, что есть ветвящиеся комменты — раньше их не было.
А вообще, таки нужно будет отправить им фичереквест :)
P.S. такой вопрос — средствами sed можно вывести определенный паттерн, плюс к нему номер строки через тильду?
Я пока пришел к такому однострочнику:
vik@frakir:~/tmp$ sed -n ‘/^#.*$/p; /^#/=’ file.txt
Он печатает все найденные заголовки, а после них — номер строки. Но мне нужно чтобы после заголовка в той же строке стояла тильда, а за ней без пробела — номер строки. Ломаю голову, как это сделать.
Это я делаю генератор содержания для АБТФ без питона :)
Не прошло и полгода — дошли руки внести изменения в текст :) Почему я с этим тянул — для меня загадка :) Но сейчас все вроде бы пофиксил. Поток просмотров с убунтуфорума заставил осознать, что куча народа это читает, а у меня баги в статье :)
Большое спасибо за отличную статью! Написано очень доступно!
Всегда пожалуйста :) Рад, что пригодилось — и спасибо за обратную связь :)
Спасибо, под юзером в автомате никак не получалось обновиться ).
Статья реально помогла.
:) Рад, что помогло. Меня этот момент тоже сбивал с толку — поэтому и взялся писать текст, когда выяснил.
Подскажите пожалуйста, как сделать чтобы при запуске firefox у курсора мыши была прыгающая иконка firefox’а, а не в виде шестерёнки.
Хороший вопрос. Насколько я понимаю, за курсор отвечают не настройки firefox, как такового, а общие системные настройки того оконного менеджера (или оконной среды), который у вас стоит в системе. Судя по тому, что там шестеренка — это KDE — увы, не моя область, но если бы мне пришлось искать информацию по вопросу — я бы искал что-то вроде «как поменять иконку курсора KDE в конкретном приложении».