Fink

Руководство пользователя - 6. Использование инструмента fink в командной строке

6.1 Использование инструмента fink

Инструмент fink использует несколько суффиксных команд для работы над пакетами дистрибутива исходного кода. Некоторым из них требуется как минимум одно имя пакета, но они также могут обрабатывать несколько имен одновременно. Можно указать только имя пакета (н-р, gimp), но также можно дать полное точное имя пакета, включающее номер версии (н-р, gimp-1.2.1) или же полное имя с номером версии и модификации (н-р, gimp-1.2.1-3). Fink автоматически выберет последнюю имеющуюся версию и модификацию, если они не указаны. У других команд другие опции.

Далее приводится список команд для инструмента fink:

6.2 Глобальные опции

Некоторые опции относятся ко всем командам fink. Если вы напечатаете fink --help, то получите список опций:

(для fink-0.26.0)

-h, --help - displays help text.

-q, --quiet - causes fink to be less verbose, opposite of --verbose. Overrides the Verbose flag in fink.conf.

-V, --version - display version information.

-v, --verbose - causes fink to be more verbose, opposite of --quiet. Overrides the Verbose field in fink.conf.

-y, --yes - assume default answer for all interactive questions.

-K, --keep-root-dir - Causes fink not to delete the root-[name]-[version]-[revision] directory in the Buildpath after building a package. Corresponds to the KeepRootDir field in fink.conf.

-k, --keep-build-dir - Causes fink not to delete the [name]-[version]-[revision] directory in the Buildpath after building a package. Corresponds to the KeepBuildDir field in fink.conf.

-b, --use-binary-dist - download pre-compiled packages from the binary distribution if available (e.g. to reduce compile time or disk usage). Note that this mode instructs fink to download the version it wants if that version is available for download; it does not cause fink to choose a version based on its binary availability. Corresponds to the UseBinaryDist flag in fink.conf.

--no-use-binary-dist - Don't use pre-compiled binary packages from the binary distribution, opposite of the --use-binary-dist flag. This is the default unless overridden by setting UseBinaryDist: true in the fink.conf configuration file.

--build-as-nobody - Drop to a non-root user when performing the unpack, patch, compile, and install phases. Note that packages built with this option may be non-functional. You should use this mode for package development and debugging only.

-m, --maintainer - (fink-0.25 and later) Perform actions useful to package maintainers: run validation on the .info file before building and on the .deb after building a package; turn certain build-time warnings into fatal errors; (fink-0.26 and later) run the test suites as specified in the field. This sets --tests and --validate to on.

--tests[=on|off|warn] - (fink-0.26.0 and later) Causes InfoTest fields to be activated and test suites specified via TestScript to be executed (see the Fink Packaging Manual). If no argument is given to this option or if the argument is on then failures in test suites will be considered fatal errors during builds. If the argument is warn then failures will be treated as warnings.

--validate[=on|off|warn] - Causes packages to be validated during a build. If no argument is given to this option or if the argument is on then validation failures will be considered fatal errors during builds. If the argument is warn then failures will be treated as warnings.

-l, --log-output - Save a copy of the terminal output during each package building process. By default, the file is stored in /tmp/fink-build-log_[name]-[version]-[revision]_[date]-[time] but one can use the --logfile flag to specify an alternate filename.

--no-log-output - Don't save a copy of the output during package-building, opposite of the --log-output flag. This is the default.

--logfile=filename - Save package build logs to the file filename instead of the default file (see the --log-output flag, which is implicitly set by the --logfile flag). You can use percent-expansion codes to include specific package information automatically. A complete list of percent-expanions is available in the Fink Packaging Manual; some common percent-expansions are:

-t, --trees=expr - Consider only packages in trees matching expr. The format of expr is a comma-delimited list of tree specifica- tions. Trees listed in fink.conf are compared against expr. Only those which match at least one tree specification are considered by fink, in the order of the first specifications which they match. If no --trees option is used, all trees listed in fink.conf are included in order. A tree specification may contain a slash (/) character, in which case it requires an exact match with a tree. Otherwise, it matches against the first path-element of a tree. For example, --trees=unstable/main would match only the unstable/main tree, while --trees=unstable would match both unstable/main and unstable/crypto. There exist magic tree specifications which can be included in expr:

Exclusion of (or failure to include) these magic trees is currently only supported for operations which do not install or remove packages.

-T, --exclude-trees=expr Consider only packages in trees not matching expr. The syntax of expr is the same as for --trees, including the magic tree specifications. However, matching trees are here excluded rather than included. Note that trees matching both --trees and --exclude-trees are excluded.

Examples of --trees and --exclude-trees:

Большинство названий данных опций говорят сами за себя. Их также можно настроить в конфигурационном файле Fink (fink.conf), если вы хотите иметь их постоянно, а не только при активации fink.

6.3 install

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

fink install nedit

Reading package info...
Information about 131 packages read.
The following additional package will be installed:
 lesstif
Do you want to continue? [Y/n]

Использование опции --use-binary-dist в сочетании с fink install может значительно ускорить процесс построения сложных пакетов.

Алиасы для команды install: update, enable, activate, use (в основном по историческим причинам).

6.4 remove

Команда remove удаляет пакеты из системы при помощи 'dpkg --remove'. Имеющаяся на данный момент команда, осуществляемая по умолчанию, имеет недостаток: она не проверяет зависимости сама, а полностью полагается на инструмент dpkg (хотя обычно это не вызывает проблем).

Команда remove удаляет только файлы фактических пакетов (кроме конфигурационных файлов), но оставляет нетронутым файл сжатого пакета .deb. Это значит, что вы можете реинсталлировать пакет впоследствии без повторного прохождения всего процесса компиляции. Если вам нужно место на диске, можно удалить .deb в дереве /opt/sw/fink/dists.

Вместе с командой fink remove можно использовать следующие опции:

-h,--help             - показывает существующие опции.
-r,--recursive        - удаляет также пакеты, зависящие от удаляемого
                        пакета (т.е. исправляет вышеуказанный недостаток).

Алиасы: disable, deactivate, unuse, delete.

6.5 purge

Команда purge предназначена для очистки системы от пакетов. Она действует так же, как команда remove, но еще и удаляет конфигурационные файлы.

Вместе с данной командой можно использовать следующие опции:

-h,--help            
                -r,--recursive

6.6 update-all

Данная команда обновляет все инсталлированные пакеты до последней версии. Ей не нужен список пакетов; вы можете просто напечатать:

fink update-all

В сочетании с этой командой полезно применение опции --use-binary-dist.

6.7 list

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

Первая колонка отражает статус инсталляции со следующими значениями:

    пакет не инсталлирован
 i   инсталлирована последняя версия
(i)  пакет инсталлирован, но имеется более поздняя версия
 p   виртуальный пакет, предоставленный инсталлированным пакетом

Для команды fink list существуют следующие опции:

-h,--help
	  Отражает имеющиеся опции.
-t,--tab
	  Выводит список в формате ограничения табуляцией, полезном для
	  выполнения вывода через скрипт.
-i,--installed
	  Отражает только текущие инсталлированные пакеты.
-o,--outdated
	  Отражает только устаревшие пакеты.
-u,--uptodate
	  Отражает только последние пакеты.
-n,--notinstalled
	  Отражает пакеты, не инсталлированные на данный момент.
-s expr,--section=expr
	  Отражает только пакеты в разделах, которые соответствуют
	  регулярному выражению expr.
-m expr,--maintainer=expr
	  Отражает только пакеты, координаторы которых соответствуют
	  регулярному выражению expr.
-r expr,--tree=expr
	  Отражает только пакеты в деревьях, которые соответствуют
	  регулярному выражению expr.
-w=xyz,--width=xyz
	  Устанавливает ширину дисплея, которая вам нужна для формата
	  вывода. xyz является либо числовым, либо автоматическим значением (auto).
	  Настройка auto устанавливает ширину на основании ширины терминала.
	  Настройка по умолчанию: auto.

Несколько примеров использования:

fink list                 - список всех пакетов
fink list bash            - проверка наличия bash и его версии
fink list --tab --outdated | cut -f 2     
                          - just list the names of the out of date packages.
fink list --section=kde   - список пакетов в разделе kde
fink list --maintainer=fink-devel
                          - list the packages with no maintainer
fink --trees=unstable list --maintainer=fink-devel
                          - list the packages with no maintainer, but only in the
                            unstable tree.
fink list "gnome*"        - список пакетов, начинающихся с 'gnome'

Кавычки в последнем примере необходимы для того, чтобы оболочка сама не начала интерпретировать образец.

6.8 apropos

Данная команда ведет себя почти так же, как fink list. Основное отличие в том, что fink apropos также находит описание пакетов с целью их выявления. Другое отличие в том, что искомая строковая цепочка должна предоставляться и является обязательной.

fink apropos irc          - список всех пакетов, имеющих 'irc' 
                			в имени или описании.
fink apropos -s=kde irc   - то же, что и выше, но с ограничением до 
                			пакетов из раздела kde.

6.9 describe

Данная команда вызывает описание пакета, имя которого вы указываете в командной строке. Надо учитывать, что только некоторые пакеты на данный момент имеют описание.

Алиасы: desc, description, info.

6.10 plugins

List the (optional) plugins available to the fink program. Currently lists the notification mechanisms and the source-tarball checksum algorithms.

6.11 fetch

Скачивает поименно указанные пакеты, но не инсталлирует их. Эта команда скачивает тарболы, даже если они уже были скачаны прежде.

The following flags can be used with the fetch command:

-h,--help		Show the options which are available.
-i,--ignore-restrictive	Do not fetch packages that are "License: Restrictive".
                      	Useful for mirrors, because some restrictive packages
                      	do not allow source mirroring.
-d,--dry-run		Just display information about the file(s) that would
			be downloaded for the package(s) to be fetched; do not
			actually download anything.
-r,--recursive		Also fetch packages that are dependencies of the
			package(s) to be fetched.

6.12 fetch-all

Скачивает все файлы исходного кода пакета. Подобно fetch, она скачивает тарболы, даже если они уже были скачаны прежде.

С командой fink fetch-all можно использовать следующие опции:

-h,--help
-i,--ignore-restrictive
-d,--dry-run

6.13 fetch-missing

Скачивает все недостающие исходные файлы пакета. Данная команда скачивает только те файлы, которые не представлены в системе.

С командой fink fetch-missing можно использовать следующие опции:

-h,--help
-i,--ignore-restrictive
-d,--dry-run

6.14 build

Строит пакет, но не инсталлирует его. Как правило, тарболы исходного кода скачиваются, если их нельзя найти. Результат этой команды - готовый к инсталляции файл .deb пакета, который вы затем можете быстро инсталлировать при помощи команды install. Эта команда бесполезна, если уже существует файл .deb. Надо иметь в виду, что зависимости - в отличие от пакета - инсталлированы, а не просто построены.

Здесь применима опция --use-binary-dist.

6.15 rebuild

Выполняет построение пакета (lподобно команде build), но игнорирует и перезаписывает существующий файл .deb. Если пакет инсталлирован, вновь созданный файл .deb также будет инсталлирован в системе через dpkg. Это весьма полезно в процессе разработки пакета.

The --use-binary-dist option is applicable here.

6.16 reinstall

Действует так же, как install, но инсталлирует пакет через dpkg, даже если он уже инсталлирован. Можно использовать эту команду, если вы случайно удалили файлы пакета или изменили конфигурационные файлы и хотите опять иметь настройки по умолчанию.

6.17 configure

Запускает повторное выполнение конфигурации fink. Это позволяет, в числе прочего, изменять ваши настройки сайтов зеркал и прокси.

New in fink-0.26.0: This command will also let you turn on the unstable trees if desired.

6.18 selfupdate

Данная команда автоматизирует процесс обновления до новых версий Fink. Она проверяет веб-сайт Fink на наличие новой версии, затем скачивает описание пакетов и обновляет базовые пакеты, в т.ч. сам fink. Эта команда может делать обновление до регулярных выпусков версий, но также может настроить ваше дерево каталогов /opt/sw/fink/dists для прямого обновления через Git. Это значит, что вы затем сможете иметь доступ к самым последним модификациям всех пакетов.

Если активирована опция --use-binary-dist, список пакетов, имеющихся в бинарном дистрибутиве, также обновляется.

6.19 selfupdate-rsync

Use this command to make fink selfupdate use rsync to update its package list.

This is the recommended way to update Fink when building from source.

Note: rsync updates only update the active trees (e.g. if unstable isn't turned on in fink.conf the list of unstable packages won't be updated.

6.20 selfupdate-git

Use this command to make fink selfupdate use Git access to update its package list.

Rsync updating is preferred, except for developers and those people who are behind firewalls that disallow rsync.

6.21 index

Перестраивает кэш пакета. Обычно вам не надо выполнять это вручную, так как fink автоматически определяет, когда он нуждается в обновлении.

6.22 validate

Данная команда выполняет различные проверки в файлах .info и .deb. Координаторы пакетов должны это делать в описании своих пакетов и соответствующих построенных пакетах перед их предоставлением.

Можно использовать следующие дополнительные опции:

-h,--help            - Отражает имеющиеся опции.
-p,--prefix     - Имитирует альтернативный префикс базового маршрута Fink (%p) для
                проверяемых файлов.
--pedantic, --no-pedantic
				- Контролирует отражение предупреждений о форматировании.
				--pedantic  - настройка по умолчанию.

Алиас: check.

6.23 scanpackages

Updates the apt-get database of debs; defaults to updating all of the trees, but may be restricted to a set of one or more trees given as arguments.

6.24 cleanup

Removes obsolete and temporary files. This can reclaim large amounts of disk space. One or more modes may be specified:

--debs               - Delete .deb files (compiled binary package archives)
                       corresponding to versions of packages that are neither
                       described by a package description (.info) file in the
                       currently-active trees nor presently installed.
--sources,--srcs     - Delete sources (tarballs, etc.) that are not used by
                       any package description (.info) file in the currently-
                       active trees.
--buildlocks, --bl   - Delete stale buildlock packages.
--dpkg-status        - Remove entries for packages that are not installed from
                       the dpkg "status" database.
--obsolete-packages  - Attempt to uninstall all installed packges that are
                       obsolete. (new in fink-0.26.0)
--all                - All of the above modes. (new in fink-0.26.0)

If no mode is specified, --debs --sources is the default action.

In addition, the following options may be used:

-k,--keep-src        - Move old source files to /opt/sw/src/old/ instead of deleting them.
-d,--dry-run         - Print the names of the files that would be deleted, but
                       do not actually delete them.
-h,--help            - Show the modes and options which are available.

6.25 dumpinfo

Действует только в версиях после fink 0.21.0.

Отражает, как fink синтаксически анализирует части файла .info пакета. Разные области и процентные расширения отражаются в соответствии со следующими опциями:

-h, --help            - Отражает имеющиеся опции.
-a, --all             - Отражает все области на основании описания пакетов.
                        Это режим по умолчанию, в котором нет флагов --field и --percent .               
-f fieldname, --field=fieldname - Отражает имена областей в списочном порядке.                    
-p key, --percent=key - Отражает клавиши данного процентного расширения
						в списочном порядке.

6.26 show-deps

Действует только для fink-0.23-6 и последующих версий.

Отражает воспринимаемый человеком список зависимостей времени компиляции (построения) и выполнения (инсталляции) пакетов, указанных в списке.