@PRODUCT_LONG @{r74}@{d}@{_} Настоящий продукт представляет собой реализацию ARJ v @COUNTERPARTS на платформе UNIX и UNIX-совместимых системах. Предполагается, что пользователь знаком с эксплуатацией ARJ в DOS. *********************************************************************** *** *** *** ВНИМАНИЕ: ДАННАЯ РЕАЛИЗАЦИЯ РАЗРАБАТЫВАЕТСЯ НЕЗАВИСИМО ОТ *** *** ОСНОВНОЙ ЛИНИИ ПРОДУКЦИИ ARJ SOFTWARE, INC., ПОЭТОМУ МОЖЕТ *** *** ОТЛИЧАТЬСЯ В ПЛАНЕ ФУНКЦИОНАЛЬНЫХ ВОЗМОЖНОСТЕЙ. *** *** *** *********************************************************************** ВВЕДЕНИЕ В этом файле описаны особенности реализации ARJ для UNIX. Перед его прочтением рекомендуется ознакомиться с общим файлом README. ТРЕБОВАНИЯ К СИСТЕМЕ Linux: * Ядро версии 2.0 или выше. * Процессор Intel 80386 или выше. * Библиотека GLIBC v 2.1 или выше. FreeBSD: * FreeBSD v 3.0 или выше (с поддержкой формата ELF) * Процессор Intel 80386 или выше. QNX: * QNX v 6.2 NC/SE/PE или выше. * Процессор Intel 80386 или выше. ВАЖНЫЕ ЗАМЕЧАНИЯ Реализация ARJ на платформах UNIX потребовала значительной модификации формата архивов. Для поддержки дат в формате UNIX был введен новый способ хранения дат, который несовместим с предыдущими версиями ARJ. Если Вы планируете обмениваться архивами с пользователями ARJ и ARJ32, Вам необходимо включить режим совместимости с DOS в файле /etc/arj.cfg: + -2d В этом случае архивация будет по умолчанию производиться в режиме совместимости с DOS (время преобразуется в местное и округляется до четного числа секунд, диапазон дат сменяется на 1980-2107 гг.) Если потребуется сохранение времени в формате UNIX, то для этого нужно будет отменить действие ключа "-2d" с командной строки. ОСОБЕННОСТИ РЕАЛИЗАЦИИ * Типовое расположение ARJ в иерархии директорий UNIX выглядит следующим образом: /usr/local/bin для программных модулей /usr/local/lib для модуля шифрования ARJCRYPT /usr/local/doc/arj для сопроводительной документации Допускается расположение в любых директориях, при условии, что программе ARJ сообщается стандартное окружение, по которому возможен поиск программных модулей (переменная PATH). Необходимо, чтобы атрибуты программных модулей ARJ разрешали как выполнение, так и чтение. Описание команд и параметров текущей версии ARJ можно получить по ключу "arj -?". В некоторых редакциях и для определенных версий может поставляться описание команд в виде справочных страниц ("manual page") - в этом случае для получения справки можно также воспользоваться командами "man arj" и др. В системах UNIX для ARJ не предусмотрена страница описания (manual page), эквивалентные ей сведения доступны по команде "arj -?". * Порядок поиска файлов настройки: arj.cfg: 1. ~/.arj.cfg 2. /etc/arj.cfg arj.key: 1. arj.key в директории с программным модулем ARJ 2. ~/.arj.key 3. /etc/arj.key rearj.cfg: 1. ~/.rearj.cfg 2. /etc/rearj.cfg Используется первый из найденных файлов настройки, при этом прочие файлы не проверяются, т.е. нет объединения местных и глобальных настроек. * Дата и время создания файла не восстанавливается, но регистрируется и хранится в архивах наравне с прочими атрибутами. * Сокращения длинных имен Windows 95 записываются в виде w95lname.xxx (т.е. в нижнем регистре). Символы верхнего регистра применяются только для временных файлов ARJ. * При распаковке на стандартный поток ввода/вывода, на него не проставляется дата модификации файла, т.е. полученный в результате выполнения команды "arj p archive myfile>newfile" файл "newfile" будет иметь текущую дату и время. * Внешние модули шифрования поставляются в виде общих динамически подключаемых библиотек. Алгоритм шифрования един для всех платформ. * В поле "Host OS" при записи в архив проставляется "UNIX", если не указан ключ "-2d". * Команда просмотра списка файлов ("L") имеет другой формат, более практичный для платформ UNIX. Атрибуты UNIX группируются в стандартный шаблон "-rwxrwxrwx", кроме того, имеются три специальных поля: Г - "set GID" - смена группы пользователей П - "set UID" - смена кода пользователя Д - "Append-only directory"/"Sticky bit" - директории с запретом на добавление или бит резидентного размещения в файле подкачки. Данный формат немного отличается от формата списков, принятого в UNIX. Флажок "Д" может указываться и для файлов, где он не имеет регламентированного стандартом значения и должен рассматриваться в зависимости от используемой платформы. Поле "CRC32" было упразднено в списке команды "L" в UNIX. Тип файла указывается в позиции, предшествующей "rwxrwxrwx". Введено новое обозначение "u", объединяющее специальные файлы UNIX. Флажки "М" и "П" ("многотомный файл" и "продолжение предыдущего тома") объединены в одной позиции "Т" ("том"), где указывается способ размещения в многотомных архивах: (пусто) - файл целиком помещен в одном томе < - продолжение предыдущего тома > - продолжается в следующем томе * - промежуточный участок (имеет продолжение как в предыдущем,так и в следующем томе архива) * Сохраняются младшие 12 битов из атрибутов файла, что покрывает все атрибуты, регламентированные стандартом открытых систем POSIX. Если осуществляется преобразование атрибутов UNIX в DOS или наоборот, то единственным значащим атрибутом является "только для чтения", который соответствует разрешению на запись для текущего пользователя в UNIX. * Вводится понятие "специальные файлы UNIX". Технически они объединяют все отсутствующие в DOS типы файлов в один, расширенный заголовок которого несет все сведения, описывающие этот файл в UNIX. Таковыми являются ссылки (как символьные, так и твердые), именованные каналы (pipe) и устройства (блочные или символьные). Архивация специальных файлов разрешается ключом "-hbu" или "-a1". При распаковке проверяется возможность воспроизведения определенных типов специальных файлов (например, устройств) на текущей платформе. Если обработка специальных файлов не включена, то они не попадают в архив, за исключением символьных ссылок, под именем которых подставляется содержимое указанного ими файла (если он физически присутствует). "-hbn" запрещает любую обработку специальных файлов. Это может оказаться полезным в тех случаях, когда системные файлы (устройства, каналы и т.д.) прибывают с другой машины или платформы. * По умолчанию при архивации определяются твердые ссылки, этот режим может быть отключен. Поиск твердых ссылок происходит только среди архивируемых в данном сеансе файлов, таким образом, рекомендуется архивировать данные так, чтобы все экземпляры твердых ссылок попадали в один сеанс. Первый файл становится опорным для всех последующих ссылок, поэтому при распаковке ссылок он уже должен существовать. Ключ "-2h" отключает обработку твердых ссылок как при архивации, так и при распаковке файлов. На стадии архивации он означает, что все твердые ссылки будут посчитаны как обычные файлы и занесены в архив с дублированием содержимого. При распаковке с ключом "-2h" ссылки не будут подключаться к опорным файлам. Ключ "-2h1" позволяет при распаковке заменять твердые ссылки символьными на опорный файл. Он полезен в том случае, если твердые ссылки не поддерживаются на уровне файловой системы (напр., HPFS). Никакого отслеживания целостности ссылок в архиве не ведется. При удалении опорного файла все ссылавшиеся на него файлы необходимо изъять из архива самостоятельно. Счетчик ссылок в архиве также не ведется. Если при распаковке твердая ссылка распадается между двумя файловыми системами из-за разных точек подключения (mount point), то выдается предупреждающее собщение; попытки создать взамен символьную ссылку не предпринимаются. * Ссылки и специальные файлы могут обслуживаться в режиме пустых архивов, что отличает их от расширенных атрибутов. Шифрование с ним не применяется, т.е. для их распаковки не обязательно знать пароль, как и с любыми другими файлами нулевой длины. * Символьные ссылки, являясь разновидностью специальных файлов, сохраняются с атрибутами файла, на который они указывают, и восстанавливаются с текущей датой и атрибутами, назначаемыми системой. Для сохранения и восстановления их собственных атрибутов служит ключ "-2s". Распаковка с ключом "-2s" предполагает, что пользователь обладает правами на файл или каталог, на который указывают ссылки, поскольку модификация атрибутов ссылки требует временного изменения атрибутов ее целевого файла. * Для сохранения и восстановления данных о владельце файла нужен ключ "-2o". При архивации возможны два варианта: "-2o" и "-2o1". "-2o" переводит имя пользователя в символьное представление, т.е. не указывается непосредственный код группы и код пользователя в группе, Необходимо понимать, что при распаковке файла на системе, где существует пользователь с тем же именем, но с другими кодами UID/GID, файл получает UID/GID этого пользователя. Это приведет к проблемам при распаковке разделов одной машины на другой машине, но при этом упрощается обмен файлами для администратора нескольких машин с общими именами пользователей. "-2o1" сохранят в архиве численное представление UID/GID. Этот ключ предназначен в основном для операций резервного копирования, "-2o2" аналогичен ключу "-2o", но позволяет в дополнение к имени пользователя сохранять в символьном виде наименование группы. Этот ключ полезен в тех случаях, когда одно символьное имя пользователя в системе встречается с различными GID. * ARJ позволяет ограничить набор архивируемых файлов определенным разделом. Ключ "-2b" обеспечивает фильтрацию файлов согласно физическим блочным устройствам, которым они принадлежат. Путем указания одного или нескольких параметров "-2b+<имя_файла>" можно ограничить архивацию соответствующим множеством разделов (символ "+" необязателен, т.е. достаточно указывать "-2b<имя_файла>"). "-2b-<имя_файла>", напротив, исключает заданные разделы из процесса архивации. В поле <имя_файла> логично указывать точку подключения раздела, но допускается любое имя файла. "-2b." ограничивает архивацию разделом, которому принадлежит текущий каталог. Примеры: arj a test / -r -2b/ (архивировать только корневой раздел) arj a main / -r -2b-/usr (архирировать все разделы, кроме содержащего /usr) Сочетание параметров "-2b+" и "-2b-" в одной командной строке не несет смысла. Также следует отметить, что указание устройства в форме типа "/dev/wd0s3" ошибочно в том смысле, что будет означать раздел, на котором находится данный файл (как правило, это корневой раздел или каталог devfs), а не само устройство /dev/wd0s3. * Ключ "-&" в системах UNIX не имеет действия. Фактически, он всегда включен. * Порядок архивации файлов предусматривает, что атрибуты директории, которой эти файлы принадлежат, будут восстановлены в самую последнюю очередь после всех файлов. Кроме того, учетные записи директорий создаются в архиве только с ключом "-a", "-a1" или "-hbd". Однако, если новые файлы добавляются к уже существующему архиву, или список файлов к архивации включал в себя одну директорию в нескольких позициях, тогда атрибуты доступа к директории могут быть зафиксированы на диске до восстановления всех файлов из нее. * ARJSFXV поддерживает хранение специальных файлов UNIX, твердых ссылок и данных о владельце. Остальные самораспаковывающиеся модули не обрабатывают эти сведения. Предполагается, что перед запуском модуля ARJSFXV ему проставлено разрешение на чтение, и что он запущен с указанием пути (например, "./mysfx"), а не найден через путь поиска. Расширения для самораспаковывающихся архивов не предусмотрены, но могут задаваться пользователем. Также существуют модули-заглушки для самораспаковывающихся архивов (SFX STUB), скомпилированные для соответствующей ОС. Их размер составляет примерно треть ARJSFX (по состоянию на ARJ v 3.10.06 для Linux). В многотомных самораспаковывающихся архивах только первый том приобретает атрибут "выполняемый". * Комментарии ANSI выводятся прямым текстом. Настройка терминала не производится. * Для указания приоритета существует ключ "-2p". Уровни приоритета имеют значения от 1 до 41, по умолчанию - 21. Выше 21 расположены привилегированные уровни, доступные только супервизору. * ARJSFXJR не обрабатывает формат совместимости с DOS. Архивы ARJSFXJR могут создаваться только без ключа "-2d". * Для того, чтобы задействовать REARJ, необходимо иметь определенный набор реализованных под UNIX архиваторов (напр., RAR и InfoZIP). Их аналоги из DOS использовать нельзя. Также необходимо иметь отдельный файл rearj.cfg (пример приведен в rearj.cfg.example из каталога документации, за дальнейшими пояснениями следует обратиться к документации по REARJ). В версиях REARJ для UNIX максимальная длина расширений файлов - 32 символа. ИЗВЕСТНЫЕ ПРОБЛЕМЫ * Может наблюдаться низкая производительность (большая задержка при запуске), если в параметрах появилась большая группа специальных файлов вследствие преобразования метасимволов средствами оболочки (shell wildcard expansion). Конец файла