Difference between revisions of "fppkg/ru"
Line 171: | Line 171: | ||
;ConfigVersion: Номер версии используемого формата файла конфигурации. Используется для проверки того, находится ли файл конфигурации в формате, ожидаемом fppkg. Не изменяйте. | ;ConfigVersion: Номер версии используемого формата файла конфигурации. Используется для проверки того, находится ли файл конфигурации в формате, ожидаемом fppkg. Не изменяйте. | ||
− | ==== | + | ==== Конфигурация для использования с Lazarus ==== |
− | + | Некоторые пакеты используют lazmkunit для интеграции с Lazarus. Когда эти пакеты установлены, им нужно знать, где установлен Lazarus. Добавьте следующую строку с путем к вашей установке lazarus в fppkg.cfg: | |
FPMakeOptions=--lazarusdir=/path/to/lazarus | FPMakeOptions=--lazarusdir=/path/to/lazarus |
Revision as of 22:38, 19 January 2019
│ English (en) │ русский (ru) │
Вступление
Fppkg - менеджер пакетов Free Pascal. С помощью этого инструмента вы можете создавать и устанавливать пакеты Free Pascal в своей системе. Вы можете устанавливать пакеты из локальных источников или загружать их из центрального хранилища. Пакеты должны быть сделаны с [помощью] FPMake.
Руководство по началу работы
Настройка
Когда вы запускаете fppkg в первый раз, он создаст новые файлы конфигурации со значениями по умолчанию. Чтобы проверить, что эти значения в порядке, запустите 'fppkg list' в окне консоли. Вы должны увидеть что-то вроде этого:
Name Installed Available
a52 2.5.1-1 -
aspell 2.5.1-1 -
bfd 2.5.1-1 -
lnet - 0.6.3-0
Появится список всех установленных пакетов и пакетов, доступных для загрузки. Вы можете увидеть, какая версия каждого пакета доступна и/или установлена.
Если fppkg показывает только доступные пакеты, но не какие-либо установленные пакеты, вы должны адаптировать свою конфигурацию fppkg. Запустите 'fppkg listsettings', чтобы увидеть текущие настройки и расположение файлов конфигурации. Найдите файл конфигурации компилятора и откройте его в текстовом редакторе. Теперь измените настройку 'GlobalPrefix' на место, где установлен fpc. Например:'GlobalPrefix=/usr/lib/fpc' или 'c:\pp'. Сохраните файл и снова запустите 'fppkg list'.
Если у вас все еще есть проблемы, пожалуйста, прочитайте раздел по настройке fppkg.
Конфигурирование компилятора
Последний шаг - это настройка компилятора Free Pascal таким образом, чтобы он обнаруживал установленные пакеты. По умолчанию пакеты устанавливаются в определенном для пользователя месте, и это местоположение по умолчанию не ищется компилятором. Запустите 'fppkg listsettings', чтобы увидеть, где fppkg устанавливает пользовательские пакеты. Это местоположение указано как 'LocalInstallDir'.
Теперь добавьте эту строку в ваш файл конфигурации компилятора Free Pascal fpc.cfg:
-Fu<LocalInstallDir>/units/$fpctarget/*
Замените <LocalInstallDir> значением параметра 'LocalInstallDir', как показано в 'fppkg list'. Например:
Linux: (/etc/fpc.cfg or ~/.fpc.cfg)
-Fu~/.fppkg/lib/fpc/$fpcversion/units/$fpctarget/*
Windows: (fpc.cfg)
-Fuc:\users\username\AppData\Local\FreePascal\fppkg\units\$fpctarget\*
Теперь вы можете использовать модули из установленных пакетов во всех ваших программах. Если вы разместите строку в нижней части fpc.cfg, вы уверены, что компилятор предпочтет (локально) установленные пакеты выше глобально установленных. Таким образом, вы можете устанавливать новые версии пакетов локально (специально для одного пользователя), не изменяя глобальные настройки.
Установка пакета
Установить пакет так же просто, как 'fppkg install [packagename]'. Это загрузит, скомпилирует и установит пакет. Если ошибки не появляются, используйте 'fppkg list', чтобы проверить, правильно ли установлен пакет. По умолчанию пакет устанавливается только для текущего пользователя. Если вы хотите принудительно сделать общесистемную установку, используйте параметр '-g'. Обратите внимание, что в этом случае вам необходимо иметь соответствующие права.
Аргументы командной строки
Вывод fppkg -h
использование: fppkg [опции] <действие> <пакет> Опции: -c --config Устанавливать конфигурацию компилятора для использования -h --help Эта справка -v --verbose Показывать больше информации -d --debug Показывать отладочную информацию -g --global Принудительная установка в глобальный (общесистемный) каталог -f --force Принудительная установка также, если пакет уже установлен -r --recovery Режим восстановления, всегда использовать внутренний fpmkunit -b --broken Не останавливаться на поврежденных пакетах -l --showlocation Показывать, установлены ли пакеты глобально или локально -o --options=value Передать дополнительные параметры компилятору -n Не читать файлы конфигурации по умолчанию -p --prefix=value Указать префикс -s --skipbroken Пропустить пересборку зависимых пакетов после установки --compiler=value Указать исполняемый компилятором --cpu=value Указать целевой процессор для компиляции --os=value Указать целевую операционную систему для компиляции Действия: update Обновить список пакетов list Список доступных и установленных пакетов build Сборка пакета compile Скомпилировать пакет install Установить пакет clean Очистить пакет archive Создать архив пакета download Скачать пакет convertmk Конвертировать Makefile.fpc в fpmake.pp fixbroken Перекомпилировать все (поврежденные) пакеты с измененными зависимостями listsettings Показать значения для всех настроек fppkg
Все действия описаны ниже.
Параметр пакета может означать следующее:
- Packagename: Имя пакета в том виде, в котором оно указано в используемом хранилище. Все доступные имена пакетов перечислены в 'fppkg list'.
- Zipfile: Полное имя zip-файла (включая расширение .zip), содержащего пакет.
- Current directory: Когда нет параметра пакета, fppkg ищет файл с именем 'fpmake.pp' в текущем каталоге, и, если он найден, использует пакет, определенный этим файлом. В этом случае скомпилированные файлы не размещаются в другом месте (см. настройка 'BuildDir'), но находятся в каталоге 'units' в текущем каталоге.
Действия
Update
Обновляет список пакетов
List
[Выводит] список доступных и установленных пакетов
Build
Сборка пакетов
Install
Установка пакетов
Download
Загрузка пакетов
Convertmk
Конвертация Makefile.fpc в fpmake.pp
Конфигурация
Общая конфигурация
При запуске fppkg считывает свои настройки из fppkg.cfg. Если он не может найти его, он попытается создать его с некоторыми значениями по умолчанию. В этом файле конфигурации указывается местоположение локального репозитория. Обычно он [находится] в домашнем каталоге пользователя. Также возможно добавить пользовательские параметры, которые всегда передаются при вызове fpmake. Это может быть использовано [с помощью] fpmake-addins. Для всех других опций см. глобальный файл конфигурации.
Помимо файла глобальной конфигурации, есть также файл, специфичный для версии компилятора. Вы можете добавить столько файлов, сколько захотите, используя разные версии компилятора или опции компилятора. Обычно используется для кросс-компиляции. Вы можете указать, какой файл конфигурации использовать в командной строке fppkg с опцией '-c'. Расположение этих файлов конфигурации указывается в файле fppkg.cfg. если файл конфигурации не указан, используется файл с именем 'default'. (Это может быть установлено в fppkg.cfg)
Наиболее важные настройки в этих файлах конфигурации - это места, где должны быть установлены пакеты. Fppkg поддерживает два разных расположения для установленных пакетов. Одно «глобальное» местоположение, которое обычно может использоваться всеми пользователями компьютера. И «локальное» местоположение, которое в большинстве случаев находится в домашнем каталоге пользователя. Эти местоположения могут быть установлены с помощью настроек 'globalprefix' и 'globalprefix'. Если вы хотите, чтобы fppkg определял, какие пакеты установлены самим fpc, необходимо установить 'globalprefix' в соответствии с префиксом вашей fpc-установки. Обычно в качестве настройки для локального префикса используется местоположение локального репозитория (задано в fppkg.cfg). Для лучшего объяснения всех опций смотрите Конфигурационные файлы компилятора.
Команда 'fppkg listsettings' покажет значения для всех настроек и имена используемых файлов конфигурации. Из настроек, которые разрешают макросы, показывается как значение, заданное пользователем, так и значение, когда оцениваются все макросы.
Глобальный файл конфигурации
Глобальный файл конфигурации содержит общую информацию для fppkg, например, хранилище для загрузки и место для размещения временных файлов. Типичный файл глобальной конфигурации выглядит следующим образом: (Linux)
[Defaults] ConfigVersion=4 LocalRepository={UserDir}.fppkg/ BuildDir={LocalRepository}build/ ArchivesDir={LocalRepository}archives/ CompilerConfigDir={LocalRepository}config/ RemoteMirrors=http://www.freepascal.org/repository/mirrors.xml RemoteRepository=auto CompilerConfig=default FPMakeCompilerConfig=default Downloader=lnet
Когда запускается fppkg, он сначала пытается загрузить fppkg.cfg из определенного пользователем места. Если пользовательская версия не может быть найдена, fppkg ищет общесистемный файл fppkg.cfg. Смотрите таблицу для точного расположения этих файлов. Если оба файла не существуют, создается файл конфигурации. Когда текущий пользователь является суперпользователем, создается файл конфигурации для всей системы, в противном случае - для конкретного пользователя. При создании файла конфигурации fppkg пытается использовать разумные значения по умолчанию для всех настроек. Когда вы устанавливаете местоположение установки fpc в параметре окружения - FPCDIR, fppkg будет использовать это местоположение в сгенерированных файлах конфигурации.
Если вы хотите точно знать, какие файлы конфигурации использует fppkg, используйте действие 'listsettings'. Он перечислит, какие файлы конфигурации используются, а также значения для всех настроек.
ОС | Пользовательский файл конфигурации | Общесистемный файл конфигурации |
---|---|---|
Unix/Linux | ~/.config/fppkg.cfg | /etc/fppkg.cfg |
Windows | %localsettings%\FreePascal\fppkg\fppkg.cfg |
Доступны следующие настройки:
- LocalRepository
- Место хранения информации о локальном хранилище. Поддерживает макросы.
- BuildDir
- Место, где создаются пакеты, когда пакет поставляется. Когда используется пакет в текущем каталоге, этот параметр игнорируется. Поддерживает макросы.
- ArchivesDir
- Место хранения пакетов, загруженных из удаленного хранилища. Поддерживает макросы.
- CompilerConfigDir
- Место, где можно найти файлы конфигурации компилятора. Поддерживает макросы.
- RemoteMirrors
- URL-адрес файла, который содержит все зеркала для удаленного хранилища.
- RemoteRepository
- Содержит репозиторий, который должен быть использован. Выбор 'auto' приведет к случайному хранилищу, выбранному из списка зеркал.
- Compilerconfig
- Имя файла конфигурации компилятора, который должен использоваться по умолчанию.
- FPMakeCompilerconfig
- Имя файла конфигурации компилятора, который должен использоваться по умолчанию для компиляции файлов fpmake.pp.
- Downloader
- Выбирает механизм загрузки. По умолчанию используется lnet.
- FPMakeOptions
- Определяет параметры, которые должны быть добавлены к каждому вызову fpmake. Используйте это, если у вас установлены fpmake-addons, которые нуждаются в определенных настройках. Примером является lazmkunit-addin, для которого требуется настройка lazarusdir. (FPMakeOptions=--lazarusdir=/path/to/lazarus)
- ConfigVersion
- Номер версии используемого формата файла конфигурации. Используется для проверки того, находится ли файл конфигурации в формате, ожидаемом fppkg. Не изменяйте.
Конфигурация для использования с Lazarus
Некоторые пакеты используют lazmkunit для интеграции с Lazarus. Когда эти пакеты установлены, им нужно знать, где установлен Lazarus. Добавьте следующую строку с путем к вашей установке lazarus в fppkg.cfg:
FPMakeOptions=--lazarusdir=/path/to/lazarus
Конфигурационные файлы компилятора
A compiler configuration file contains all information necessary to select which fpc-compiler to use. A typical compiler-configuration file looks like this:
[Defaults] ConfigVersion=4 GlobalPrefix=/usr/local/lib/fpc LocalPrefix={LocalRepository} Compiler=/usr/local/bin/fpc OS=linux CPU=i386 Version=2.5.1
The following settings are available:
- GlobalPrefix
- The prefix which has to be used when installing global packages. Normally this is the prefix of where fpc is installed, so that the packages which are installed by fpc are recognised. Supports macros.
- LocalPrefix
- Supports macros.
- GlobalInstallDir
- This is the location where the global packages are installed. The default value is {GlobalPrefix}lib/fpc/{compilerversion}/ on unices, and {globalprefix} on other operating systems. Supports macros.
- LocalInstallDir
- This is the location where the user-specifig (local) packages are installed. Add this path to the search path of the compiler if you want to use one of the packages installed into this location. The default value is {LocalPrefix}lib/fpc/{compilerversion}/ on unices, and {LocalPrefix} on other operating systems. Supports macros.
- Compiler
- The executable name of the compiler which has to be used.
- OS
- The target OS.
- CPU
- The target CPU-family.
- Version
- The version of the used compiler.
- ConfigVersion
- The version number of the used configuration-file format. Is used internally to check if the configuration file is in the format fppkg expects.
Использование макросов в файлах конфигурации
To make life easier you can use macros within the configuration-files. Macro's are between accolades '{}' and they are substituted on by some dynamic values. The following macros are available:
- AppConfigDir
- Returns the location where fppkg stores it's user-specific configuration files. In fact it calls GetAppConfigDir with Global=false.
- UserDir
- Returns the location of the user's home-directory. (GetUserDir)
- LocalRepository
- The value of LocalRepository in the global configuration file
- CompilerVersion
- The version of the compiler as set in the compile configuration file, or the version detected from the compiler executable. This macro is not available in the global configuration file.
Upgrade
After upgrading the compiler your old fppkg directory is outdated.
- If you use only one compiler version remove your ~/.fppkg/config/default directory and do fppkg update.
- If you use multiple compiler versions copy the ~/.fppkg/config/default to ~/.fppkg/config/3.1.1 and then use fppkg -c 3.1.1.