Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Распаковка

Пред. 

Глава 12. Сборка и установка свободного програмного обеспечения

 След.


Распаковка

Архив tar.gz

Стандартным[31] форматом сжатия в UNIX®-системах является формат gzip, разработанный проектом GNU и считающийся одним из самых лучших среди общих утилит сжатия.

gzip часто ассоциируется с утилитой с именем tar. tar выжил с тех незапамятных времён, когда компьютерщики хранили свои данные на магнитных лентах. Сейчас на замену магнитным лентам пришли CD-ROM и DVD, а дискеты постепенно вытесняются flash-накопителями. Однако для создания архивов всё ещё используется tar. Например, все файлы каталога могут быть объединены в один файл. Затем этот файл может быть легко сжат при помощи gzip.

Вот почему свободное ПО обычно распространяется в виде tar-архивов, сжатых gzip'ом. Поэтому они имеют расширение .tar.gz (или .tgz для краткости).

Использование GNU Tar

Для распаковки этого архива можно воспользоваться gzip'ом, а затем tar'ом. Но GNU-версия tar (gtar) позволяет нам «на лету» использовать gzip и распаковать файл архива без уведомления о выполнении каждого шага (и без использования дополнительного дискового пространства).

Формат использования tar:

tar <опции_файла> <файл.tar.gz> [файлы]

Опция <файлы> является необязательной. Если она опущена, будет обработан весь архив. Этот аргумент не нужно указывать для извлечения всего содержимого архива .tar.gz

Например:

$ tar xvfz guile-1.3.tar.gz
-rw-r--r-- 442/1002      10555 1998-10-20 07:31 guile-1.3/Makefile.in
-rw-rw-rw- 442/1002       6668 1998-10-20 06:59 guile-1.3/README
-rw-rw-rw- 442/1002       2283 1998-02-01 22:05 guile-1.3/AUTHORS
-rw-rw-rw- 442/1002      17989 1997-05-27 00:36 guile-1.3/COPYING
-rw-rw-rw- 442/1002      28545 1998-10-20 07:05 guile-1.3/ChangeLog
-rw-rw-rw- 442/1002       9364 1997-10-25 08:34 guile-1.3/INSTALL
-rw-rw-rw- 442/1002       1223 1998-10-20 06:34 guile-1.3/Makefile.am
-rw-rw-rw- 442/1002      98432 1998-10-20 07:30 guile-1.3/NEWS
-rw-rw-rw- 442/1002       1388 1998-10-20 06:19 guile-1.3/THANKS
-rw-rw-rw- 442/1002       1151 1998-08-16 21:45 guile-1.3/TODO
...

Некоторые из опций tar:

  • v делает вывод tar подробным. Это означает, что на экран будут выведены все найденные в архиве файлы. Если эта опция опущена, информация, выводимая в процессе обработки, будет ограничена.
  • f является обязательной опцией. Без неё tar пытается использовать магнитную ленту вместо файла архива (т.е. устройство /dev/rmt0, стример).
  • z позволяет вам обрабатывать архив, сжатый gzip'ом (с расширением .gz). Если вы забудете указать эту опцию, tar выдаст ошибку. И наоборот, эта опция не должна использоваться для несжатых архивов.

tar позволяет вам выполнять над архивом различные действия (извлекать, читать, создавать, добавлять...). Опции определяют тип используемого действия:

  • x: позволяет вам извлекать файлы из архива.
  • t: выводит список содержимого архива.
  • c: позволяет вам создать архив. Вы можете использовать её для создания резервных копий своих личных файлов, например.
  • r: позволяет вам добавлять файлы в конец архива. Она не может быть использована для уже сжатых архивов.

Bzip2

Формат сжатия bzip2 уже заменил собой gzip в общем использовании, однако некоторые программы всё ещё распространяются в формате gzip в основном для совместимости с более старыми системами. Почти всё свободное ПО сейчас распространяется в архивах с расширением .tar.bz2.

По отношению к команде tar bzip2 используется также, как и gzip. Единственным отличием является использование буквы j вместо z. Например:

$ tar xvjf foo.tar.bz2

Другой способ (который хоть и выглядит более понятным, но дольше набирается!):

$ tar --use-compress-program=bzip2 -xvf foo.tar.bz2

Перед запуском tar убедитесь, что bzip2 установлен в каталог, включенный в вашу переменную окружения PATH.

Просто сделайте это!

Самый простой способ

Теперь, когда вы готовы распаковать архив, не забудьте получить сначала права администратора (root). Вам понадобится делать вещи, которые не разрешается делать обычному пользователю. И даже если вы можете сделать некоторые из них как обычный пользователь, лучше сразу стать root'ом, даже если это может быть не совсем безопасным.

Первым делом перейдите в каталог /usr/local/src и скопируйте в него архив. Впоследствии вы всегда сможете найти архив в случае утраты программного обеспечения. Если у вас недостаточно свободного дискового пространства, сохраните архив на дискету после установки программы. (Однако вряд ли вам это удастся для любых исходников, например, для КДЕ :) Видимо это руководство писалось в те времена, когда терабайтовые массивы IDE/SATA/SCSI-дисков были ещё чем-то из области фантастики (прим. переводчика)) Вы также можете удалить его, но убедитесь, что в любой момент сможете найти его во Всемирной паутине.

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

Самый безопасный путь

UNIX®-системы (примерами которых являются GNU/Linux и FreeBSD®) могут быть безопасными системами. Это означает, что обычные пользователи не смогут осуществить действия, способные подвергнуть систему опасности (отформатировать диск, например), или изменить файлы других пользователей. Это также обеспечивает систему неким иммунитетом против вирусов.

С другой стороны, root может сделать всё - даже запустить вредоносную программу. Наличие доступных исходных текстов позволяет вам изучить их на наличие зловредного кода (вирусов и троянов). В этом отношении лучше быть осторожным[32].

Идея состоит в создании пользователя специально для администрирования (например free или admin) при помощи команды adduser. Этому пользователю должно быть предоставлено разрешение на запись в следующие каталоги: /usr/local/src, /usr/local/bin и /usr/local/lib, а также во все подкаталоги /usr/share/man (ему также может понадобиться копировать файлы в какое-нибудь другое место). Мы рекомендуем, чтобы вы сделали этого пользователя владельцем необходимых каталогов или создали для него группу и открыли каталоги на запись для этой группы.

Как только приняты все эти предосторожности, вы можете переходить к инструкциям из раздела «Самый простой способ».



[31] На сегодняшний день в GNU/Linux стандартом является формат bzip2. bzip2 более эффективен для текстовых файлов засчёт использования большей вычислительной мощности. Смотрите раздел «Bzip2», посвящённый специально этой программе.

[32] Пословица из мира BSD гласит: «Никогда не доверяй пакету, для которого у тебя нет исходных кодов.»


Пред. 

Уровень выше

 След.

Введение 

Начало

 Конфигурирование