Распаковка

Архив tar.gz

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

Утилита gzip неразрывно связана с утилитой tar. tar это старая программа, оставшаяся в живых с тех времен, когда компьютерщики сохраняли свои данные на магнитных лентах. В настоящее время дискеты и CD-ROM вытеснили магнитные ленты, но утилита tar все еще используется для создания архивов. Все файлы и каталоги могут быть слеплены в один файл и после этого легко сжаты с помощью утилиты gzip.

Это является причиной, по которой свободное программное обеспечение обычно доступно в виде архива tar, сжатого с помощью программы gzip. Поэтому расширение файла выглядит так: .tar.gz (иногда для краткости .tgz).

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

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

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

tar <file options> <.tar.gz file> [files] 

Опция <files> необязательна. Если она опущена, то действие будет применено ко всему архиву. Этот аргумент не нужен для извлечения содержимого архива .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 verbose. В этом случае имена всех файло, найденных в архиве, будут показаны на экране. Если эта опция опущена, процесс будет происходить без вывода какой-либо информации на экран.

  • f Это обязательная опция. Без нее tar будет использовать вместо архива стример (то есть устройство /dev/rmt0).

  • z эту опцию нужно применять к архиву, сжатому gzip (у которых расширение .gz). Если упустить эту опцию, tar сгенерирует ошибку. И наоборот - эта опция не может быть использована с несжатыми архивами.

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

  • x: позволяет извлечь файлы из архива.

  • t: получить список содержимого архива.

  • c: позволяет создать новый архив. Между прочим, вы можете использовать это для создания резервных копий ваших личных файлов.

  • r: позволяет вам добавить файлы в конец архива. Этого нельзя делать в сжатых архивах.

bzip2

Формат сжатия bzip2 был разработан для замены gzip. bzip2 делает архивы меньшего размера, чем gzip, но это еще пока не стандарт. Совсем недавно стали попадаться архивы с расширением .tar.bz2.

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

$ tar xvjf foo.tar.bz2

В некоторых дистрибутивах программ вместо этого могут предлагать использовать опцию I:

$ tar xvfI foo.tar.bz2

Это же можно записать и длинным способом:

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

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

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

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

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

Во-первых, зайдите в каталог /usr/local/src и скопируйте туда архив. Вы всегда сможете найти тут архив в случае потери программного обеспечения. Если у вас мало места на жестком диске, после компиляции сохраните исходные коды на дискетах. Вы также можете впоследствии просто удалить исходники, если вы уверены, что всегда сможете получить их в Web.

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

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

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

С другой стороны, root может делать все. Наличие исходных кодов делает возможным проверку программы на наличие злонамеренного кода (вирусы и трояны). Проявите бдительность [30].

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

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



[29] Все чаще и чаще в новых программах начинают использовать bzip2 - более эффективный компрессор для текстовых файлов (и требующий больших мощностей от компьютера). Смотрите раздел “bzip2”, где описаны особенности этой программы.

[30] В мире BSD существует пословица: “Никогда не доверяйте пакету, к которому у вас нет исходных кодов (Never trust a package you don't have the sources for).