Difference between revisions of "fppkg/ru"

From Lazarus wiki
Jump to navigationJump to search
 
(18 intermediate revisions by 2 users not shown)
Line 43: Line 43:
 
Теперь вы можете использовать модули из установленных пакетов во всех ваших программах. Если вы разместите строку в нижней части fpc.cfg, вы уверены, что компилятор предпочтет (локально) установленные пакеты выше глобально установленных. Таким образом, вы можете устанавливать новые версии пакетов локально (специально для одного пользователя), не изменяя глобальные настройки.
 
Теперь вы можете использовать модули из установленных пакетов во всех ваших программах. Если вы разместите строку в нижней части fpc.cfg, вы уверены, что компилятор предпочтет (локально) установленные пакеты выше глобально установленных. Таким образом, вы можете устанавливать новые версии пакетов локально (специально для одного пользователя), не изменяя глобальные настройки.
  
=== Installing a package ===
+
=== Установка пакета ===
  
Installing a package is as simple as 'fppkg install [packagename]'. This will download, compile and install the package. When no error appears, use 'fppkg list' to check if the package is correctly installed. By default the package is installed for the current user only, if you want to force a system-wide installation, use the '-g' parameter. Note however that in that case you need to have the proper rights.
+
Установить пакет так же просто, как 'fppkg install [packagename]'. Это загрузит, скомпилирует и установит пакет. Если ошибки не появляются, используйте 'fppkg list', чтобы проверить, правильно ли установлен пакет. По умолчанию пакет устанавливается только для текущего пользователя. Если вы хотите принудительно сделать общесистемную установку, используйте параметр '-g'. Обратите внимание, что в этом случае вам необходимо иметь соответствующие права.
  
== Commandline arguments ==
+
== Аргументы командной строки ==
  
Output of fppkg -h
+
Вывод fppkg -h
 
<pre>
 
<pre>
Usage: fppkg [options] <action> <package>
+
использование: fppkg [опции] <действие> <пакет>
Options:
+
Опции:
   -c --config        Set compiler configuration to use
+
   -c --config        Устанавливать конфигурацию компилятора для использования
   -h --help          This help
+
   -h --help          Эта справка
   -v --verbose      Show more information
+
   -v --verbose      Показывать больше информации
   -d --debug        Show debugging information
+
   -d --debug        Показывать отладочную информацию
   -g --global        Force installation to global (system-wide) directory
+
   -g --global        Принудительная установка в глобальный (общесистемный) каталог
   -f --force        Force installation also if the package is already installed
+
   -f --force        Принудительная установка также, если пакет уже установлен
   -r --recovery      Recovery mode, use always internal fpmkunit
+
   -r --recovery      Режим восстановления, всегда использовать внутренний fpmkunit
   -b --broken        Do not stop on broken packages
+
   -b --broken        Не останавливаться на поврежденных пакетах
   -l --showlocation  Show if the packages are installed globally or locally
+
   -l --showlocation  Показывать, установлены ли пакеты глобально или локально
   -o --options=value Pass extra options to the compiler
+
   -o --options=value Передать дополнительные параметры компилятору
   -n                Do not read the default configuration files
+
   -n                Не читать файлы конфигурации по умолчанию
   -p --prefix=value  Specify the prefix
+
   -p --prefix=value  Указать префикс
   -s --skipbroken    Skip the rebuild of depending packages after installation
+
   -s --skipbroken    Пропустить пересборку зависимых пакетов после установки
   --compiler=value  Specify the compiler-executable
+
   --compiler=value  Указать исполняемый компилятором
   --cpu=value        Specify the target cpu to compile for
+
   --cpu=value        Указать целевой процессор для компиляции
   --os=value        Specify the target operating system to compile for
+
   --os=value        Указать целевую операционную систему для компиляции
Actions:
+
 
   update            Update packages list
+
Действия:
   list              List available and installed packages
+
   update            Обновить список пакетов
   build            Build package
+
   list              Список доступных и установленных пакетов
   compile          Compile package
+
   build            Сборка пакета
   install          Install package
+
   compile          Скомпилировать пакет
   clean            Clean package
+
   install          Установить пакет
   archive          Create archive of package
+
   clean            Очистить пакет
   download          Download package
+
   archive          Создать архив пакета
   convertmk        Convert Makefile.fpc to fpmake.pp
+
   download          Скачать пакет
   fixbroken        Recompile all (broken) packages with changed dependencies
+
   convertmk        Конвертировать Makefile.fpc в fpmake.pp
   listsettings      Show the values for all fppkg settings
+
   fixbroken        Перекомпилировать все (поврежденные) пакеты с измененными зависимостями
 +
   listsettings      Показать значения для всех настроек fppkg
 
</pre>
 
</pre>
  
All the actions are described [[#Actions|below]].
+
Все действия описаны [[#Actions|ниже]].
  
The package parameter can mean the following:
+
Параметр пакета может означать следующее:
  
* ''Packagename:''The package name as it appears on the used repository. All available package names are listed by 'fppkg list'.
+
* ''Packagename:'' Имя пакета в том виде, в котором оно указано в используемом хранилище. Все доступные имена пакетов перечислены в 'fppkg list'.
* ''Zipfile:'' The full name of a zip-file (including the .zip extension) which contains a package.
+
* ''Zipfile:'' Полное имя zip-файла (включая расширение .zip), содержащего пакет.
* ''Current directory:'' When there is no package parameter, fppkg looks for a file called 'fpmake.pp' in the current directory, and if it is found, use the package defined by that file. In this case the compiled files are not placed elsewhere (See the [[#The global configuration file|'BuildDir' setting]]) but within the 'units' directory in the current directory.
+
* ''Current directory:'' Когда нет параметра пакета, fppkg ищет файл с именем 'fpmake.pp' в текущем каталоге, и, если он найден, использует пакет, определенный этим файлом. В этом случае скомпилированные файлы не размещаются в другом месте (см. [[fppkg/ru#Глобальный файл конфигурации|настройка 'BuildDir']]), но находятся в каталоге 'units' в текущем каталоге.
  
== Actions==
+
== Действия==
  
 
=== Update ===
 
=== Update ===
Update packages list
+
Обновляет список пакетов
  
 
=== List ===
 
=== List ===
List available and installed packages
+
[Выводит] список доступных и установленных пакетов
  
 
=== Build ===
 
=== Build ===
Build package
+
Сборка пакетов
  
 
=== Install ===
 
=== Install ===
Install package
+
Установка пакетов
  
 
=== Download ===
 
=== Download ===
Download package
+
Загрузка пакетов
  
 
=== Convertmk ===
 
=== Convertmk ===
Convert Makefile.fpc to fpmake.pp
+
Конвертация Makefile.fpc в fpmake.pp
  
== Configuration ==
+
== Конфигурация ==
  
=== General configuration ===
+
=== Общая конфигурация ===
  
On startup fppkg reads it's settings from fppkg.cfg. If it can not find it, it will try to create one with some default values. In this configuration file the location of the local repository is set. Normally this is in the user's home-directory. It is also possible to add custom options which are always passed when fpmake is called. This can be used by fpmake-addins. For all other options see [[#The global configuration file|the global configuration file]].
+
При запуске fppkg считывает свои настройки из fppkg.cfg. Если он не может найти его, он попытается создать его с некоторыми значениями по умолчанию. В этом файле конфигурации указывается местоположение локального репозитория. Обычно он [находится] в домашнем каталоге пользователя. Также возможно добавить пользовательские параметры, которые всегда передаются при вызове fpmake. Это может быть использовано [с помощью] fpmake-addins. Для всех других опций см. [[fppkg/ru#Глобальный файл конфигурации|глобальный файл конфигурации]].
  
Besides the global configuration file, there is also a file which is specific for a compiler version. You can add as much of these files as you want, using different compiler versions or compiler options. A common use is for cross-compiling. You can specify which configuration file to use on the fppkg command line with the '-c' option. The location of these configuration files is set in fppkg.cfg. when no configuration file is specified, the file called 'default' is used. (This can be set in fppkg.cfg)
+
Помимо файла глобальной конфигурации, есть также файл, специфичный для версии компилятора. Вы можете добавить столько файлов, сколько захотите, используя разные версии компилятора или опции компилятора. Обычно используется для кросс-компиляции. Вы можете указать, какой файл конфигурации использовать в командной строке fppkg с опцией '-c'. Расположение этих файлов конфигурации указывается в файле fppkg.cfg. если файл конфигурации не указан, используется файл с именем 'default'. (Это может быть установлено в fppkg.cfg)
  
Most important settings in these configuration files are the locations of where the packages have to be installed. Fppkg supports two different locations for installed packages. One 'global' location, which normally can be used by all users of the computer. And a 'local' location which in most cases is in a user's home-directory. These locations can be set with the 'localprefix' and 'globalprefix' settings. If you want that fppkg detects which packages are installed by fpc itself, the 'globalprefix' has to be set to match the prefix of your fpc-installation. It is common to use the location of the local repository (set in fppkg.cfg) as setting for the localprefix. For a better explanation of all options see [[#Compiler configuration files|the compiler configuration files]].
+
Наиболее важные настройки в этих файлах конфигурации - это места, где должны быть установлены пакеты. Fppkg поддерживает два разных расположения для установленных пакетов. Одно «глобальное» местоположение, которое обычно может использоваться всеми пользователями компьютера. И «локальное» местоположение, которое в большинстве случаев находится в домашнем каталоге пользователя. Эти местоположения могут быть установлены с помощью настроек 'globalprefix' и 'globalprefix'. Если вы хотите, чтобы fppkg определял, какие пакеты установлены самим fpc, необходимо установить 'globalprefix' в соответствии с префиксом вашей fpc-установки. Обычно в качестве настройки для локального префикса используется местоположение локального репозитория (задано в fppkg.cfg). Для лучшего объяснения всех опций смотрите [[fppkg/ru#Конфигурационные файлы компилятора| Конфигурационные файлы компилятора]].
  
The 'fppkg listsettings' command will show the values for all settings and the names of the used configuration files. From settings that allow macros the value as it is set by the user and the value when all macros are evaluated are both shown.
+
Команда 'fppkg listsettings' покажет значения для всех настроек и имена используемых файлов конфигурации. Из настроек, которые разрешают макросы, показывается как значение, заданное пользователем, так и значение, когда оцениваются все макросы.
  
=== The global configuration file ===
+
=== Глобальный файл конфигурации ===
  
The global configuration file contains general information for fppkg, like the repository to download from and where to place the temporary files. A typical global configuration file looks like this: (linux)
+
Глобальный файл конфигурации содержит общую информацию для fppkg, например, хранилище для загрузки и место для размещения временных файлов. Типичный файл глобальной конфигурации выглядит следующим образом: (Linux)
  
 
  [Defaults]
 
  [Defaults]
Line 139: Line 140:
 
  Downloader=lnet
 
  Downloader=lnet
  
When fppkg is started it first tries to load fppkg.cfg from a user-specific location. If a user-specific version can not be found fppkg searches for a system-wide fppkg.cfg. See the table for the exact location of these files. If both files do not exist a configuration file is created. When the current user is a superuser, a system-wide configuration file is made, else a user-specific one. When creating the configuration file fppkg tries some reasonable defaults for all settings. When you set the location of the fpc-installation in the enviroment-option FPCDIR, fppkg will use this location in the generated configuration files.
+
Когда запускается fppkg, он сначала пытается загрузить fppkg.cfg из определенного пользователем места. Если пользовательская версия не может быть найдена, fppkg ищет общесистемный файл fppkg.cfg. Смотрите таблицу для точного расположения этих файлов. Если оба файла не существуют, создается файл конфигурации. Когда текущий пользователь является суперпользователем, создается файл конфигурации для всей системы, в противном случае - для конкретного пользователя. При создании файла конфигурации fppkg пытается использовать разумные значения по умолчанию для всех настроек. Когда вы устанавливаете местоположение установки fpc в параметре окружения - FPCDIR, fppkg будет использовать это местоположение в сгенерированных файлах конфигурации.
 +
 
 +
Когда вы имеете уже инсталированные пакеты совместно с FPC или с Lazarus сборкой, то вам необходимо также создать [Repository] секции описания в конфигурационном файле. Типичный глобальный конфигурационный файл для Lazarus сборки выглядит следующим образом: (Windows)
 +
 
 +
[Global]
 +
ConfigVersion=5
 +
RemoteMirrors=https://www.freepascal.org/repository/mirrors.xml
 +
LocalRepository=C:\Users\UserName\AppData\Local\FreePascal\fppkg\
 +
BuildDir={LocalRepository}build\
 +
ArchivesDir={LocalRepository}archives\
 +
CompilerConfigDir={LocalRepository}config\
 +
CompilerConfig=default
 +
FPMakeCompilerConfig=default
 +
RemoteRepository=auto
 +
FPMakeOptions=--lazarusdir=C:\lazarus
 +
Downloader=FPC
 +
InstallRepository=user
 +
 +
[Repository]
 +
Name=lazarus_fpc
 +
Description=Packages which are installed along with the Lazarus Free Pascal Compiler
 +
Path=C:\lazarus\fpc\3.2.0
 +
Prefix=C:\lazarus\fpc\3.2.0
 +
 +
[Repository]
 +
Name=user
 +
Description=User-installed packages
 +
Path={LocalRepository}units/{CompilerVersion}
 +
Prefix={LocalRepository}
  
When you want to know for sure which configuration files fppkg uses, use the 'listsettings' action. It will list which configuration files are used plus the values for all settings.
+
Если вы хотите точно знать, какие файлы конфигурации использует fppkg, используйте действие 'listsettings'. Он перечислит, какие файлы конфигурации используются, а также значения для всех настроек.
  
 
{| class="wikitable"
 
{| class="wikitable"
|+ Location of configuration files on different OS'es
+
|+ Расположение файлов конфигурации на разных ОС
! OS !! User-specific configuration file !! System-wide configuration file
+
! ОС !! Пользовательский файл конфигурации !! Общесистемный файл конфигурации
 
|-
 
|-
 
|Unix/Linux
 
|Unix/Linux
Line 156: Line 185:
 
|}
 
|}
  
The following settings are available:
+
Доступны следующие настройки:
  
;LocalRepository: The location where local repository information is stored. Supports [[#Using macros in the configuration files|macros]].
+
;LocalRepository: Место хранения информации о локальном хранилище. Поддерживает [[fppkg/ru# Использование макросов в файлах конфигурации|макросы]].
;BuildDir: The location where packages are build when a package is supplied. When the [[#Commandline arguments|package in the current directory]] is used, this setting is ignored. Supports [[#Using macros in the configuration files|macros]].
+
;BuildDir: Место, где создаются пакеты, когда пакет поставляется. Когда используется [[fppkg/ru#Аргументы командной строки|пакет в текущем каталоге]], этот параметр игнорируется. Поддерживает [[fppkg/ru# Использование макросов в файлах конфигурации|макросы]].
;ArchivesDir: Place where packages downloaded from a remote repository are stored. Supports [[#Using macros in the configuration files|macros]].
+
;ArchivesDir: Место хранения пакетов, загруженных из удаленного хранилища. Поддерживает [[fppkg/ru# Использование макросов в файлах конфигурации|макросы]].
;CompilerConfigDir: Place where the compiler-configuration files can be found. Supports [[#Using macros in the configuration files|macros]].
+
;CompilerConfigDir: Место, где можно найти файлы конфигурации компилятора. Поддерживает [[fppkg/ru# Использование макросов в файлах конфигурации|макросы]].
;RemoteMirrors: The URL to a file which contains all mirrors for a remote repository.
+
;RemoteMirrors: URL-адрес файла, который содержит все зеркала для удаленного хранилища.
;RemoteRepository: Contains the repository which has to be used. Selecting 'auto' will result in a random repository selected from the mirror list.
+
;RemoteRepository: Содержит репозиторий, который должен быть использован. Выбор 'auto' приведет к случайному хранилищу, выбранному из списка зеркал.
;Compilerconfig: The filename of the compiler-configuration file which has to be used by default.
+
;Compilerconfig: Имя файла конфигурации компилятора, который должен использоваться по умолчанию.
;FPMakeCompilerconfig: The filename of the compiler-configuration file which has to be used by default for compiling the fpmake.pp files.
+
;FPMakeCompilerconfig: Имя файла конфигурации компилятора, который должен использоваться по умолчанию для компиляции файлов fpmake.pp.
;Downloader: Select the download-mechanism. lnet is the default.
+
;Downloader: Выбирает механизм загрузки. По умолчанию используется lnet.
;FPMakeOptions: Specifies options which have to be added to each call to fpmake. Use this if you have fpmake-addons installed that need some specific settings. An example is the lazmkunit-addin, which needs the lazarusdir setting. (FPMakeOptions=--lazarusdir=/path/to/lazarus)
+
;FPMakeOptions: Определяет параметры, которые должны быть добавлены к каждому вызову fpmake. Используйте это, если у вас установлены fpmake-addons, которые нуждаются в определенных настройках. Примером является lazmkunit-addin, для которого требуется настройка lazarusdir. (FPMakeOptions=--lazarusdir=/path/to/lazarus)
;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. Do not change.
+
;ConfigVersion: Номер версии используемого формата файла конфигурации. Используется для проверки того, находится ли файл конфигурации в формате, ожидаемом fppkg. Не изменяйте.
 +
;InstallRepository: Имя репозитария, куда будут устанавливаться новые пакеты и обновления.
  
==== Configuration for use with Lazarus ====
+
==== Конфигурация для использования с Lazarus ====
  
Some packages use the lazmkunit to integrate with Lazarus. When these packages are installed they need to know where Lazarus is installed. Add the following line with the path to your lazarus installation to fppkg.cfg:
+
Некоторые пакеты используют lazmkunit для интеграции с Lazarus. Когда эти пакеты установлены, им нужно знать, где установлен Lazarus. Добавьте следующую строку с путем к вашей установке lazarus в fppkg.cfg:
  
 
  FPMakeOptions=--lazarusdir=/path/to/lazarus
 
  FPMakeOptions=--lazarusdir=/path/to/lazarus
  
=== Compiler configuration files ===
+
=== Конфигурационные файлы компилятора ===
  
A compiler configuration file contains all information necessary to select which fpc-compiler to use. A typical compiler-configuration file looks like this:
+
Файл конфигурации компилятора содержит всю информацию, необходимую для выбора используемого компилятора fpc. Типичный файл конфигурации компилятора выглядит следующим образом:
  
 
  [Defaults]
 
  [Defaults]
Line 189: Line 219:
 
  Version=2.5.1
 
  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 [[#Using macros in the configuration files|macros]].
+
;GlobalPrefix: Префикс, который должен использоваться при установке глобальных пакетов. Обычно это префикс того места, где установлен fpc, чтобы пакеты, установленные с помощью fpc, были распознаны. Поддерживает [[fppkg/ru# Использование макросов в файлах конфигурации|макросы]].
;LocalPrefix: Supports [[#Using macros in the configuration files|macros]].
+
;LocalPrefix: Поддерживает [[fppkg/ru# Использование макросов в файлах конфигурации|макросы]].
;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 [[#Using macros in the configuration files|macros]].
+
;GlobalInstallDir: Это место, где установлены глобальные пакеты. Значением по умолчанию является  {GlobalPrefix}lib/fpc/{compilerversion}/ для никсов и {globalprefix} для других операционных систем. Поддерживает [[fppkg/ru# Использование макросов в файлах конфигурации|макросы]].
;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 [[#Using macros in the configuration files|macros]].
+
;LocalInstallDir: Это место, где установлены пользовательские (локальные) пакеты. Добавьте этот путь к пути поиска компилятора, если вы хотите использовать один из пакетов, установленных в этом месте. Значением по умолчанию является {LocalPrefix}lib/fpc/{compilerversion}/ в unix и {LocalPrefix} в других операционных системах. Поддерживает [[fppkg/ru# Использование макросов в файлах конфигурации|макросы]].
;Compiler: The executable name of the compiler which has to be used.
+
;Compiler: Имя исполняемого [файла] компилятора, которое должно быть использовано.
;OS: The target OS.
+
;OS: Целевая OS.
;CPU: The target CPU-family.
+
;CPU: Целевое семейство процессоров.
;Version: The version of the used compiler.
+
;Version: Версия используемого компилятора.
;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.
+
;ConfigVersion: Номер версии используемого формата файла конфигурации. Используется для проверки того, находится ли файл конфигурации в формате, ожидаемом fppkg.
  
=== Using macros in the configuration files ===
+
=== Использование макросов в файлах конфигурации ===
  
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 [http://www.freepascal.org/docs-html/rtl/sysutils/getappconfigdir.html GetAppConfigDir] with Global=false.
+
;AppConfigDir: Возвращает место, где fppkg хранит свои пользовательские файлы конфигурации. На самом деле, он вызывает [http://www.freepascal.org/docs-html/rtl/sysutils/getappconfigdir.html GetAppConfigDir] с Global=false.
;UserDir: Returns the location of the user's home-directory. ([http://www.freepascal.org/docs-html/rtl/sysutils/getuserdir.html GetUserDir])
+
;UserDir: Возвращает местоположение домашнего каталога пользователя. ([http://www.freepascal.org/docs-html/rtl/sysutils/getuserdir.html GetUserDir])
;LocalRepository: The value of LocalRepository in the global configuration file
+
;LocalRepository: Значение LocalRepository в файле глобальной конфигурации.
;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.
+
;CompilerVersion: Версия компилятора, указанная в файле конфигурации компиляции, или версия, обнаруженная в исполняемом файле компилятора. Этот макрос недоступен в файле глобальной конфигурации.
  
 
[[Category:Packages]]
 
[[Category:Packages]]
 
[[Category:FPC]]
 
[[Category:FPC]]
  
== Upgrade ==
+
== Обновление ==
  
After upgrading the compiler your old fppkg directory is outdated.  
+
После обновления компилятора ваш старый каталог fppkg устаревает.  
  
*If you use only one compiler version remove your '''~/.fppkg/config/default''' directory and do '''fppkg update'''.
+
*Если вы используете только одну версию компилятора, удалите папку '''~/.fppkg/config/default''' и выполните '''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'''.
+
*Если вы используете несколько версий компилятора, скопируйте '''~/.fppkg/config/default''' в '''~/.fppkg/config/3.1.1''' и затем выполните '''fppkg -c 3.1.1'''.

Latest revision as of 18:52, 13 November 2020

English (en) русский (ru)

Вступление

Fppkg - менеджер пакетов Free Pascal. С помощью этого инструмента вы можете создавать и устанавливать пакеты Free Pascal в своей системе. Вы можете устанавливать пакеты из локальных источников или загружать их из центрального хранилища. Пакеты должны быть сделаны с [помощью] FPMake.

Руководство по началу работы

Note-icon.png

Примечание: этот раздел действителен только для fppkg от fpc версии 2.5.1 или выше.

Настройка

Когда вы запускаете 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 будет использовать это местоположение в сгенерированных файлах конфигурации.

Когда вы имеете уже инсталированные пакеты совместно с FPC или с Lazarus сборкой, то вам необходимо также создать [Repository] секции описания в конфигурационном файле. Типичный глобальный конфигурационный файл для Lazarus сборки выглядит следующим образом: (Windows)

[Global]
ConfigVersion=5
RemoteMirrors=https://www.freepascal.org/repository/mirrors.xml
LocalRepository=C:\Users\UserName\AppData\Local\FreePascal\fppkg\
BuildDir={LocalRepository}build\
ArchivesDir={LocalRepository}archives\
CompilerConfigDir={LocalRepository}config\
CompilerConfig=default
FPMakeCompilerConfig=default
RemoteRepository=auto
FPMakeOptions=--lazarusdir=C:\lazarus
Downloader=FPC
InstallRepository=user

[Repository]
Name=lazarus_fpc
Description=Packages which are installed along with the Lazarus Free Pascal Compiler 
Path=C:\lazarus\fpc\3.2.0
Prefix=C:\lazarus\fpc\3.2.0

[Repository]
Name=user
Description=User-installed packages
Path={LocalRepository}units/{CompilerVersion}
Prefix={LocalRepository}

Если вы хотите точно знать, какие файлы конфигурации использует 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. Не изменяйте.
InstallRepository
Имя репозитария, куда будут устанавливаться новые пакеты и обновления.

Конфигурация для использования с Lazarus

Некоторые пакеты используют lazmkunit для интеграции с Lazarus. Когда эти пакеты установлены, им нужно знать, где установлен Lazarus. Добавьте следующую строку с путем к вашей установке lazarus в fppkg.cfg:

FPMakeOptions=--lazarusdir=/path/to/lazarus

Конфигурационные файлы компилятора

Файл конфигурации компилятора содержит всю информацию, необходимую для выбора используемого компилятора fpc. Типичный файл конфигурации компилятора выглядит следующим образом:

[Defaults]
ConfigVersion=4
GlobalPrefix=/usr/local/lib/fpc
LocalPrefix={LocalRepository}
Compiler=/usr/local/bin/fpc
OS=linux
CPU=i386
Version=2.5.1

Доступны следующие настройки:

GlobalPrefix
Префикс, который должен использоваться при установке глобальных пакетов. Обычно это префикс того места, где установлен fpc, чтобы пакеты, установленные с помощью fpc, были распознаны. Поддерживает макросы.
LocalPrefix
Поддерживает макросы.
GlobalInstallDir
Это место, где установлены глобальные пакеты. Значением по умолчанию является {GlobalPrefix}lib/fpc/{compilerversion}/ для никсов и {globalprefix} для других операционных систем. Поддерживает макросы.
LocalInstallDir
Это место, где установлены пользовательские (локальные) пакеты. Добавьте этот путь к пути поиска компилятора, если вы хотите использовать один из пакетов, установленных в этом месте. Значением по умолчанию является {LocalPrefix}lib/fpc/{compilerversion}/ в unix и {LocalPrefix} в других операционных системах. Поддерживает макросы.
Compiler
Имя исполняемого [файла] компилятора, которое должно быть использовано.
OS
Целевая OS.
CPU
Целевое семейство процессоров.
Version
Версия используемого компилятора.
ConfigVersion
Номер версии используемого формата файла конфигурации. Используется для проверки того, находится ли файл конфигурации в формате, ожидаемом fppkg.

Использование макросов в файлах конфигурации

Чтобы упростить жизнь, вы можете использовать макросы в файлах конфигурации. Макросы находятся между знаками '{}' и заменяются некоторыми динамическими значениями. Доступны следующие макросы:

AppConfigDir
Возвращает место, где fppkg хранит свои пользовательские файлы конфигурации. На самом деле, он вызывает GetAppConfigDir с Global=false.
UserDir
Возвращает местоположение домашнего каталога пользователя. (GetUserDir)
LocalRepository
Значение LocalRepository в файле глобальной конфигурации.
CompilerVersion
Версия компилятора, указанная в файле конфигурации компиляции, или версия, обнаруженная в исполняемом файле компилятора. Этот макрос недоступен в файле глобальной конфигурации.

Обновление

После обновления компилятора ваш старый каталог fppkg устаревает.

  • Если вы используете только одну версию компилятора, удалите папку ~/.fppkg/config/default и выполните fppkg update.
  • Если вы используете несколько версий компилятора, скопируйте ~/.fppkg/config/default в ~/.fppkg/config/3.1.1 и затем выполните fppkg -c 3.1.1.