Меню Рубрики

Установка bz2 для ubuntu

Как распаковать bz2 Linux

Bzip2 — это алгоритм сжатия файлов, часто использующийся в связке с tar. Дело в том, что сам tar не умеет уменьшать вес архива — эта программа всего лишь упаковывает файлы и папки в несжатом виде.

После этого в действие вступает bzip2, сжимая готовый файл вида *.tar и присваивая ему название *.tar.bz2 либо *.tbz2. В этой статье мы расскажем вам распаковать bz2 linux с помощью команды tar.

Как распаковать bz2 в Linux

1. Обычная распаковка bz2

В большинстве дистрибутивов Linux утилита tar установлена «из коробки». Поэтому для распаковки файлов из архива tar.bz2 достаточно открыть терминал и ввести команду tar с использованием опций —extract (сокращенно -x), которая непосредственно указывает на действие с архивом, а также -f, после которой следует название архива. В некоторых случаях может понадобиться sudo в начале строки.

Если по какой-либо причине работа с терминалом невозможна, следует воспользоваться возможностями файлового менеджера — навести курсор на файл, который нужно извлечь, щелкнуть правой кнопкой мыши и выбрать команду Извлечь либо Извлечь в текущую папку.

Чтобы видеть, какие именно файлы были извлечены, понадобится опция -v, а строка в терминале будет выглядеть так:

По умолчанию tar извлекает файлы в текущую директорию (как правило, это домашняя папка). Чтобы назначить другое место, куда будет помещено содержимое архива, нужно использовать опцию -С (—directory). Например, для директории /user/losst/new-folder запись должна быть такой:

tar -xjf archive.tar.bz2 -C /home/losst/new-folder

2. Выбор файлов для распаковки

Если нужно извлечь из архива определенные файлы, а не распаковать его целиком, следует после названия архива перечислить названия этих файлов, разделяя их пробелом:

tar -xjf archive.tar.bz2 file1 file2

Когда внутри архива содержатся папки, а требуемые файлы расположены внутри них, придется указывать не только названия, но и полный путь к файлам. Просмотреть структуру архива можно с помощью опции —list (-t) — как это сделать будет рассказано ниже.

Извлечение определенных папок происходит по аналогичной схеме:

tar -xjf archive.tar.bz2 dir1 dir2

При попытке извлечь файл, которого нет в архиве, появится сообщение об ошибке.

Для извлечения группы файлов, в названиях которых есть один и тот же элемент, существует опция —wildcards. Групповым символом шаблона служит звездочка, а сам шаблон необходимо выделять кавычками. Вот пример для извлечения документов, которые имеют расширение odt:

tar -jf archive.tar.bz2 —wildcards ‘*.odt’

3. Распаковка в потоке

Извлекая сжатые файлы из tar.bz2 с использованием стандартного ввода нужно указывать опцию -j. Она указывает на то, что файл был сжат именно bz2.

В данном примере исходные файлы Vim загружаются при помощи команды wget с последующим выводом в команду tar:

wget -c ftp://ftp.vim.org/pub/vim/unix/vim-8.1.tar.bz2 -O — | sudo tar -xj

Если опция -j не будет указана, tar сообщит об этом и укажет способ исправления ошибки примерно так tar: Archive is compressed. Use -j option.

4. Просмотр структуры архива

Для просмотра структуры архива tar bz2 linux предназначена опция —list (-t):

Если добавить еще и опцию —verbose (-v), tar покажет более полную информацию о файлах:

Выводы

Tar дает огромный выбор возможностей для распаковки архивов tar.bz2. Мы постарались рассказать о них как можно подробнее, но если у вас возникают какие-то сложности с использованием опций tar в терминале, задавайте свои вопросы в комментариях.

Оцените статью:

Об авторе

Больше восьми лет назад мною было принято решение объявить бойкот оконной монополии и установить на свой компьютер Ubuntu. С тех пор это моя основная ОС. Иногда в порядке эксперимента «подселяю» к ней собратьев из семьи Linux. Увлекаюсь фотографией и горным туризмом. В свободное от работы время пишу статьи для losst.ru.

5 комментариев

Как всегда, все просто и понятно.
Единственный сайт от которого разрешены уведомления в браузере )).

Спасибо за раскрытие очень сложных для понимания тем.
Ждём не дождемся, когда выпустите статью про архивы .tar.xz

Не претендую на истину в последней инстанции, но хочу отметить следующий момент.

Многие пользователи Линукса пришли из лагеря Виндоуса. В Виндовсе термины «упаковка», «архивирование» и «сжатие» обозначают одно действие — создание сжатого файла, содержащего один или несколько файлов и/или папок. Степень сжатия может быть разная — от несжатого совсем до максимального. Но как правило сжатие происходит. Отсюда у Виндовс-пользователей выработалось стойкое понятие, что «упаковка», «архивирование» и «сжатие» — это одно и тоже. Только разными словами.

В Линуксе всё немножко иначе. В Линуксе понятия «упаковка» и «архивирование» обозначают только объединение нескольких файлов и директориев в один файл. Про сжатие информации ничего не говориться, оно вообще отсутствует как класс. Это сложилось исторически давным давно, в эпоху UNIX-а и больших накопителей на магнитной ленте. В те времена ни о каких компрессорах/декомпрессорах не было и речи. А вот понятие «сжатие» обозначает именно уменьшение объёма информации. Сжатие происходит обычно после архивирования. Но поскольку эти два раздельных процесса (архивирование и сжатие) выполняются для Линукс-пользователя за одну команду, создаётся ложное представление, что В Линуксе всё работает точно так же, как в Виндоусе.

Читайте также:  Установка люка для шкода октавия

Это не опасное заблуждение, можно было и не заострять на этом внимание. Однако, понимание природы вещей — это то, что отличает профессионала от дилетанта. Чем лучше вы знаете Линукс, тем больше он вам нравится. И тем меньше вам будет хотеться использовать сами-знаете-что.

стоит иметь ввиду, что операционные системы на базе ядра *Linux* многогранны и решают несколько видов типовых задач, если говорить об упаковке и сжатии. наследие — это tar и целый набор компрессоров, которые tar умеет подключать налету. но архивирование при помощи *tar* имеет место, когда вы уверены, что ваш архив будет использован именно в *Linux* окружении. и обстоятельства не всегда складываются так. иногда ваш архив должен быть легко и просто распакован в других средах. (зло не упоминаю всуе.) и на этот случай любая операционная система на базе *Linux* имеет целый ряд архиваторов, а именно: zip, 7z, rar etc. эти архиваторы не сохраняют нативные для *Linux* атрибуты файлов, но их архивы без труда распаковываются на других системах. (зло не упоминаю всуе). так вот в этом случае упаковка и сжатие имеет тот же самый характер как и в зле, и выполняется одним единственным процессом. поэтому расставляя точки над i стоит смотреть по сторонам и различать все детали и частности.

файл любого типа может быть упакован при помощи bzip2. а вот каталог — нене, понадобится tar — который и делает из каталога или группы файлов один файл, при этом архивируя атрибуты и обеспечивая безпотерьное извлечение всех упакованных данных в архив данных.

источник

Установка программ tar bz2, из исходных кодов в Linux

Linux-системы неразрывно связаны с концепцией GNU – проекта, поддерживающего и развивающего философию свободно распространяемого программного обеспечения (ПО), в том числе и в виде исходного кода. А поскольку систем на базе ядра Linux существует великое множество и разработчики дистрибутивов всегда для своих систем используют исходный код ПО при сборке комплектов утилит, пакетов, да и самого ядра, то, очевидно, что использование исходных кодов ПО — это неотъемлемый аспект в эксплуатации Linux-систем. По крайней мере, любому пользователю, достаточно хорошо освоившему UNIX-подобные системы, рано или поздно приходится сталкиваться со сборкой ПО из исходных кодов.

Самым распространённым случаем, когда приходится собирать ПО из «исходников» является ситуация, когда в свет выходит новая версия какого-либо пакета с устранением критической уязвимости в системе безопасности или с добавлением важного функционала. Но поскольку системы Linux, как правило, снабжены хранилищами пакетов (репозиториями), из которых происходит загрузка, установка и обновление ПО, то часто бывает так, что разработчики дистрибутива, которые и поддерживают репозитории, ещё не успели сформировать новые пакеты ПО, для которых уже выпущено обновление. В этом случае можно прибегнуть к самостоятельной сборке требуемых пакетов из исходного кода.

Для чего нужно построение пакетов из исходного кода?

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

Владельцы и администраторы хостинг-площадок предпочитают также устанавливать в качестве веб-серверов, PHP-интерпретаторов и серверов баз данных (БД) предварительно собранные на целевом оборудовании соответствующие программные пакеты. Это позволяет добиться максимальной совместимости ПО с оборудованием, на котором предполагается его работа и, как следствие — стабильности, что для веб-хостинга очень важно.

Для программистов навыки по построению исполняемых файлов из исходного кода являются ключевыми, несмотря даже на то, что с этой задачей прекрасно справляются все современные интегрированные среды разработки (IDE), однако, как показывает практика, часто приходится производить сборку ПО без применения IDE.

Общий порядок сборки пакетов — утилита make

Для облегчения сборки ПО из исходных кодов существует свободная утилита make. Она применяется во всех UNIX-подобных системах для подавляющего большинства утилит. При сборке пакета очень полезно изучать информацию, содержащуюся, как правило, в файлах README или INSTALL, входящих в пакет. В этих файлах разработчики ПО указывают инструкции и специфические мероприятия для успешной сборки пакетов. Здесь также можно найти и системные требования для работы ПО и описания необходимых зависимостей, без которых собрать пакет будет невозможно.

Общий порядок сборки выглядит так:

  1. Распаковка архива tar bz2, содержащего исходные коды (обычно именно так «исходники» и распространяются).
  2. Переход в директорию с распакованными исходными текстами.
  3. Конфигурирование предстоящей сборки (указание директорий установки, сторонних библиотек, архитектуры, дополнительных компонентов и т.д.). Для этого обычно используются служебные скрипты.
  4. Непосредственно, сама сборка — команда make.
  5. Установка (распространение) построенного ПО — команда make install.
Читайте также:  Установка потолочного монитора с dvd

Ниже будет приведена эта процедура на примере с FTP-клиентом FileZilla, итак распаковка архива с «исходниками»:

В результате, в домашнем каталоге пользователя в поддиректории Builds появится директория filezilla-3.38.1. Нужно перейти в неё:

Просмотрев содержимое этой директории можно заметить файл INSTALL, в котором приведены инструкции для сборки/установки FileZilla:

Раздел «Compilation» из файла INSTALL:

Теперь, согласно этой инструкции, нужно создать директорию compile и перейти в неё:

Далее, для успешной сборки и работы пакета необходимо проверить существующую конфигурацию системы на наличие требуемых зависимостей, библиотек и настроек, а также сконфигурировать сборку, запустив соответствующий скрипт configure.

Подобные скрипты создаются разработчиками ПО для облегчения процесса сборки/установки. Символы ../ означают переход в каталог на уровень вверх — именно там

по отношению к недавно созданной директории compile находится служебный скрипт configure.

Вывод этого скрипта показывает , готов ли данный пакет к сборке:

В данном случае для сборки необходима библиотека libfilezilla более свежей версии, чем имеющаяся на данный момент в системе. По указанному адресу её можно скачать и собрать отдельно:

Здесь также присутствует файл INSTALL с указанием порядка сборки библиотеки libfilezilla-0.15.0

Изучив вывод скрипта configure, можно сделать вывод о том, стоит ли далее приступать к сборке пакета. Обычно о критических ошибках сообщается фразами «configure: error». Убедившись, что всё нормально, можно приступать к построению:

Далее в консоль будет направлен вывод, отображающий ход сборки, после успешного окончания которого можно произвести установку пакета:

В выводе этой команды при успешном завершении обычно присутствует сообщения вида:

Сборка и установка библиотеки завершена, можно приступать к построению пакета FileZilla:

По-умолчанию установка будет произведена в директорию /usr/bin. Для изменения директории установки следует использовать опцию —prefix=каталог:

Сборка FTP-клиента FileZilla из исходных кодов на этом завершена. Следует отметить, что для FileZilla требуются также сторонние библиотеки инструментов, обеспечивающие работу с криптографическими алгоритмами (nettle), а также для отрисовки графического пользовательского интерфейса (GUI) — wxWidgets. Специфические требования всегда указываются разработчиками ПО в файлах README или INSTALL, входящих в архив пакета или исходных кодов.

Помимо установленных в системе требуемых пакетов, удовлетворяющим зависимостям для сборки, также необходимо, зачастую, устанавливать версии этих пакетов для разработки.

Обычно такие пакеты имеют идентичные с оригинальными наименования, но оканчивающиеся на «dev», к примеру nettle-3.1-dev или wx-gtk-base-dev. В данном примере предполагается, что данные пакеты установлены и правильно настроены.

Ручная сборка

Ручная сборка из исходных кодов выполняется следующим образом:

Для кода на процедурном C:

Здесь «program» — это собранный исполняемый файл, который можно теперь запускать:

Теперь стоит рассмотреть чуть более сложный вариант. Например, исходный код приложения состоит из классов, содержащихся в отдельных файлах. Класс BaseClass, заголовочный файл BaseClass.h:

Реализация, файл BaseClass.cpp:

Класс ChildClass, заголовочный файл ChildClass.h:

Файл с функцией main, main.cpp:

Пусть все приведённые файлы находятся в директории «HelloWorld», причём заголовочные файлы в поддиректории «include», а файлы реализаций *.cpp — в «src». Чтобы построить исполняемый файл в данном случае нужно выполнить следующие команды:

Определите аргументы программы! Пример: ./program 5.25

Автоматическая сборка — написание Make-файлов

Конечно, для больших проектов ручная сборка — это крайне неудобно. Именно поэтому и была когда-то давно разработана утилита make, позволяющая производить построение проектов любой сложности. Она выполняет инструкции и правила по автоматизации процесса сборки, хранящиеся в специальных Make-файлах.

Синтаксис Makefile’а следующий:

Это описание цели, в котором указываются зависимости dependencies, команды для достижения цели system command, а также сама цель target. Символ табуляции [tab] является обязательным и только этим символом обозначаются команды для достижения целей. Например, для данного примера, одна из целей будет иметь следующее описание:

Эта запись означает, что для получения объектного файла BaseClass.o нужно использовать исходный код из файла src/BaseClass.cpp, использовав команду g++, которой, в свою очередь, передаются соответствующие параметры.

Для вышеупомянутого проекта HelloWorld Make-файл будет иметь следующий вид:

Make-фалы обычно имеют имя Makefile. Это, своего рода унификация для того, чтобы утилита make самостоятельно отыскивала и распознавала Make-файлы без надобности явно их ей передавать в качестве аргумента в командной оболочке.

Теперь нужно выполнить команду make и запустить построенный исполняемый файл:

Но даже и такой вариант для больших проектов не подойдёт, поскольку придётся обрабатывать практически каждый файл отдельно, задавая для них описания целей. Используя правила implicit rules, а также predrfined implicit rules можно заставить Make-файл автоматически обрабатывать содержимое проекта и генерировать описания целей для его компонентов. Для того, чтобы составлять универсальные Make-файлы нужно придерживаться определённых правил или даже стандартов, определяющих структуру всего проекта, например:

  1. Имя конечного исполняемого файла должно совпадать с папкой проекта.
  2. Заголовочные файлы и файлы реализаций находятся в отдельных (include и src соответственно) поддиректориях.
  3. Функция main находится в отдельном файле, расположенном в корне проекта над директориями src и include.
  4. Объектные файлы должны создаваться в отдельной поддиректории, например obj.
  5. Конечный исполняемый файл должен создаваться в отдельной поддиректории, например build.
Читайте также:  Установка вотс ап на компьютере

Make-файл, удовлетворяющий этим требованиям для данного проекта HelloWorld может иметь такой вид:

Обращение к переменным производится с помощью конструкции $(VALUE). Запись SOURCES=$(wildcard $(MAIN) $(SRC)/*.cpp) указывает, что исходные тексты будут искаться в поддиректории src по маске *.cpp и в файле main.cpp. А конструкция:

описывает, как будут генерироваться цели для создания объектных файлов в каталоге obj из исходных текстов файлов в каталоге src. Цель clean подразумевает удаление всего, что связано с предыдущими сборками. Функция filter-out, присутствующая в списке команд для этой цели, нужна для того, чтобы при очистке не удалились нужные файлы, в данном случае — main.cpp. Цель .PHONY описывает зависимости, не связанные напрямую с файлами.

Теперь, после выполнения команды make:

исполняемый файл будет в директории build:

Объектные файлы — в директории obj:

Следует отметить, что грамотное составление универсальных Make-файлов требует предварительно и внимательного изучения соответствующей документации, например по адресу http://www.gnu.org/software/make/manual/, где можно найти исчерпывающее описание для более подробного изучения данной темы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

источник

Школа Linux

Установка программ из tar.bz2 (исходных кодов)

Здравствуйте! После долгого перерыва я возвращаюсь опять к написанию статей. И в этой статье я хочу рассказать вам как можно установить программу из файлов форматом tar.bz2. Сначала вкратце расскажу что это такое. Tar.bz2 представляет собой сжатый архив, с сохранением прав для всех файлов. Если быть более точным, то это не один архив, а целых два. Сначала файлы архивируются с помощью tar (без сжатия) — отсюда и tar в названии архива, а потом еще архив tar сжимается при помощи bzip2. Выглядит это вроде нашей русской матрешки, архив запаковывается в другой архив. В архиве tar.bz2 обычно хранятся исходные тексты программ. Выглядит это вроде нашей русской матрешки, архив запаковывается в другой архив. В архиве tar.bz2 обычно хранятся исходные тексты программ. Но так бывает не всегда, иногда в этом архиве хранятся и уже скомпилированные бинарные файлы. Чтобы нам начать устанавливать программу из этого формата, нам сначала необходимо распаковать его. Я хочу рассказать вам об установке Midnight Commander (консольный файловый менеджер) из этого формата. Для этого нам потребуется сам архив, который вам будет необходимо скачать по ссылке: http://www.midnight-commander.org/downloads/mc-4.7.5.1.tar.bz2 Я сохранил его в домашней папке. Далее начинаем распаковку, для этого в терминале набираем:

После этой процедуры у нас должен появиться файл mc-4.7.5.1.tar, как уже заметно, окончание bz2 исчезло, значит мы его расжали.

Далее распаковыаем этот архив:

Все, у нас все файлы из архива распаковались в каталог mc-4.7.5.1, поэтому заходим в него:

И смотрим, что у нас там появилось:

Как видно, что здесь у нас находятся исходные тексты MC. Далее нам необходимо внимательно просмотреть два файла: README и INSTALL.

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

Эта команда сконфигурирует исходные тексты под ваш дистрибутив linux. У меня эта команда в конце выдала такую ошибку, у вас ее может и не быть, а может быть совершенно другая, все зависит от версии вашего дистрибутива:

В этой ошибке сказано, что отсутствует библиотека libglib2.0-dev. Чтобы исправить эту ошибку пришлось доустановить эту библиотеку:

После установки этой библиотеки надо еще раз запустить configure. Но и на этот раз появилась ошибка:

Поэтому доустанавливаем и эту библиотеку:

После этого еще раз запускаем configure и на этот раз все прошло удачно. Поэтому далее мы начнем выполнять компилирование:

Эта команда обычно занимает много времени, поэтому вы спокой сможете поставить чайник и заварить ароматный кофе, чтоб скрасить свое ожидание. После компиляции необходимо установить эту программку. Для этих целей можно воспользоваться командой:

После выполения этой команды, если она выполнилась без ошибок, можно свободно будет запустить нашу программу:

Но команда make install может нарушить работоспособность вашей системы. В linux для этого есть специальная утилита checkinstall, которая преобразует вашу программу в пакет, родной для вашего дистрибутива (rpm, deb). Я воспользуюсь этой утилитой, но для начала я ее установлю:

Так как мне необходим именно дебиановский пакет, то мне будет необходимол указать это в параметре утилиты checkinstall, кстати замечу, что эту команду нам необходимо запустить от root`а:

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

Вот в принципе и вся установка.

Конкурсы, конференции, викторины, олимпиады и другие мероприятия для учащихся и педагогов с действительно ценными призами. АНО «ЦПИ «Ариадна»

источник

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

Adblock
detector