firefox из tar.bz2

Разведение огнелисов в домашних условиях

или установка firefox из tar.bz2 архива, а также способ всегда иметь свежего лиса к завтраку

firefox и thunderbird можно установить в Линуксе из репозитория (через synaptic или apt-get, например), а можно – напрямую из tar.bz2 архива с официального сайта mozilla. Второй способ требует немножко больше работы, зато позволяет после установки иметь всегда свежий firefox без возни со сторонними репозиториями и с минимумом хлопот.

Статья разбита на несколько частей – сначала идут довольно пространные объяснения о том где и что лежит, как установить firefox из архива (распаковать и положить в /opt), как сделать firefox браузером по умолчанию (так, чтобы клик по ссылке на pidgin или в thunderbird открывал именно firefox) и как обновлять firefox установленный таким образом (очень просто на самом деле). В самом конце я кратко перечислил все шаги в небольшой шпаргалке.

Руководство небольшое, не претендует на полный обзор темы, рассчитано на debian или ubuntu.

Любые замечания и уточнения будут приветствоваться.

Что где лежит в Линуксе

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

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, поскольку интегрировать почтовый клиент мне в общем-то некуда.

14 комментариев на «firefox из tar.bz2»

  1. Одно маленькое замечание: я бы не рекомендовал использовать uz. Во первых это обычная обертка из шелла вокруг гнушного tar-а. Лучше привыкать использовать все же tar. Во вторых uz входит в комплект mtools, его нет в стандартной поставке дистрибутивов, если не установлен данный пакет. В общем некошерный инструмент. ;)

    • Ага. Я вечером поправлю :) К tar’у я пока непривычен, увы. Но с замечанием согласен.

    • Остальное на уровне? Или еще есть “дырки”? :)

      • Ну как тебе сказать… Вообще я бы так не делал. ;) ИМХО иметь самый свежий 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, то будут оба жить и поживать по идее. :)

                На счет того, что ты хотел узнать как правильно… Я лишь свое мнение высказал, я не знаю на сколько это правильно. ;)

                • Не прошло и полгода – дошли руки внести изменения в текст :) Почему я с этим тянул – для меня загадка :) Но сейчас все вроде бы пофиксил. Поток просмотров с убунтуфорума заставил осознать, что куча народа это читает, а у меня баги в статье :)

  2. К стати не хорошо как-то комменты выглядят, когда трейд глубоки поулчается: очень узко, даже страшно представить что будет дальше. :) Чет тебе надо с оформлением подумать видимо…

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

      А вообще, таки нужно будет отправить им фичереквест :)

    • P.S. такой вопрос – средствами sed можно вывести определенный паттерн, плюс к нему номер строки через тильду?

      Я пока пришел к такому однострочнику:

      vik@frakir:~/tmp$ sed -n ‘/^#.*$/p; /^#/=’ file.txt

      Он печатает все найденные заголовки, а после них – номер строки. Но мне нужно чтобы после заголовка в той же строке стояла тильда, а за ней без пробела – номер строки. Ломаю голову, как это сделать.

      Это я делаю генератор содержания для АБТФ без питона :)

Добавить комментарий

Fill in your details below or click an icon to log in:

Логотип WordPress.com

You are commenting using your WordPress.com account. Log Out / Изменить )

Фотография Twitter

You are commenting using your Twitter account. Log Out / Изменить )

Фотография Facebook

You are commenting using your Facebook account. Log Out / Изменить )

Connecting to %s

Follow

Get every new post delivered to your Inbox.