Difference between revisions of "Online Package Manager"
Line 78: | Line 78: | ||
==== Difference between download/install/update ==== | ==== Difference between download/install/update ==== | ||
+ | Download/Install --> operations between you and the main repository | ||
+ | Update --> operations between you and the package maintainers | ||
[[File:OPM10.png]] | [[File:OPM10.png]] | ||
Revision as of 13:02, 12 December 2016
About
Online Package Manager is a tool that automates the process of installing, upgrading, configuring Lazarus packages. The packages are stored in the main repository(see repository column) as zip files, along with a JSON file. The JSON contains all necessary information about the packages. On request the packages are downloaded/extracted/compiled/installed into the IDE. If available, it's also possible to update a previously installed package from the maintainer webpage(see update column).
Screenshot
License
Download
Online package manager is part of Lazarus sources, in directory ($LazarusDir)/components/onlinepackagemanager.
To get the latest version:
From command line
Checkout: $ svn co http://svn.freepascal.org/svn/lazarus/trunk/components/onlinepackagemanager onlinepackagemanager
Update: $ svn up
With a SVN client
System Requirements / Dependencies
- FPC 3.0.0 or newer
- Lazarus 1.6.0 or newer
- These versions were available at the time of writing this update.
- Tested on the following widgeset: win32/64, gtk2, carbon, qt(win)
- The package manager does not depend on any external package
Installation
In Lazarus "Install/Uninstall Packages" window select "OnlinePackageManager" from the available packages, click "Install selection" and then rebuild the IDE.
Support page
http://forum.lazarus.freepascal.org/index.php/topic,34297.0.html
Using the package manager
Getting started
Go to Lazarus Menu-->Package-->Online Package Manager. On startup the package manager will automatically download a list with available repository packages, the list is displayed in a tree(see screenshots above).
Filter the tree/Locate a package
You can filter the package list by:
- Packagename
- Package file(.lpk)-->a repository package can contain multiple lpk files
- Package category
- Package status
- Version
- Description
- Author
- Lazarus compatibility
- FPC compatibility
- Supported widget sets
- Packagetype
- Dependencies
- License
Operation with packages
Refresh package list
Press the "Refresh" button to update the package list.
Download package
Check one or more package then press the "Download" button. This will download/extract the packages to a preselected directory. Nothing gets installed. Useful when you want to install the packages manually or study their sources without installing.
Install a package
Check one or more package then press the "Install" button. The package manager will automatically download/extract/compile/install the selected packages(from the main repository), then rebuild the IDE if necessary(Designtime/Designtime_and_runtime packages). Confirm the rebuild by clicking the "Yes" button. Please note: The compile feature is only available in Lazarus 1.7+.
Update a package
Check one or more package then press the "Update" button. The package manager will update the selected packages from the maintainer's homepage(if available). The package must be installed first, a direct update although is possible, is not allowed to prevent unresolved dependency error. Please note: downloading/installing packages from external link is not without a risk. Only update the package if you trust the package maintainer.
Difference between download/install/update
Download/Install --> operations between you and the main repository Update --> operations between you and the package maintainers
Cleanup local repository
This operation will delete all non-installed packages/archives from the local repository. To cleanup the local repository press the "Cleanup" button.
Create
This section is for package maintainers.
Create repository package
To create a repository package press "Create repository package" menu item, then:
- select the package main directory(package manager will recursively search for all package files inside the folder)
- select the packages you wish to include
- choose a category
- adjust package info if necessary(lazarus/fpc compatibility, supported widgetset, etc)
- press the create button
The whole process should take no longer then 1-2 min/ package. If all goes well you should get a zip and a json file. Upload somewhere the files and send the link to getmem1@gmail.com. Every package will be accepted after a short check(malware, license, etc). Multiple versions of the same package is also allowed.
Create JSON for upates
To allow the user to update the package directly form your webpage, follow this steps:
- Make sure your package is already in the main repository(see previous section)
- Check the package, press the "Create JSON for upates" menu item then create the JSON.
- Edit the JSON, upload to your webpage, then send me the link.
The JSON will look like this:
Editable items in the JSON:
"DownloadZipURL" --> Link to your new, updated package
"DisableInOPM" --> If you want to temporary disable your package, set this boolean to true. It's useful for maintenance, the package will be grayed out in the tree. The user cannot download/install/update the package.
"Version"/"ForceNotify"/"InternalVersion" --> To trigger an update message on the users computer, you can either:
- Increase the "Version" number. Useful when you want to release a new version of the package.
- Set "ForceNotify" to true. Useful after a minor change in your source, that does not require a version change or in case of trunk version. To prevent continous error messages, "ForceNotify" must be used in combination with "InternalVersion". After the user updates the package, OPM locally stores the "InternalVersion" value. If you want to trigger a new message, increase "InternalVersion" with one. If "ForceNotify" is true, "Version" is always ignored.
The most common scenario is this:
- Generate the JSON
- Modify "DownloadZipURL"
- Increase version number when necessary.
Please note: After you edited the JSON the changes are not immediately visible in the tree. Usually it takes 1-2 min. or less.
Options
To display the options dialog press the "Options" button.