Руководство пользователя - 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:
- %n - package name
- %v - package version
- %r - package revision
-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:
- status - Includes packages in the dpkg status database.
- virtual - Includes virtual packages which reflect the capabili- ties of the system.
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 --trees=stable,virtual,status install foo
Install foo as if
fink
was using the stable tree, even if unstable is enabled infink.conf
.fink --exclude-trees=local install foo
Install the version of foo in Fink, not the locally modified version.
fink --trees=local/main list -i
List the locally modified packages which are installed.
Большинство названий данных опций говорят сами за себя. Их также можно настроить
в конфигурационном файле 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 и последующих версий.
Отражает воспринимаемый человеком список зависимостей времени компиляции (построения) и выполнения (инсталляции) пакетов, указанных в списке.