Jump to content
Wiki Home
EPrints Home
Bazaar
Files
Main menu
Main menu
move to sidebar
hide
Navigation
Front Page
EPrints 3 Manual
EPrints Training Course
EPrints Glossary
Installing EPrints
How-to Configure EPrints
EPrints 3.2+ API
EPrints 3 Reference
EPrints Plugins
Wiki
All categories
Recent changes
Main Page
Help
EPrints Documentation
Search
Search
Appearance
Log in
Request account
Personal tools
Log in
Request account
Pages for logged out editors
learn more
Contributions
Talk
Editing
EPrints Package Manager
Page
Discussion
British English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
[[Category:EPrints Bazaar]] =The EPrints Package Manager= This page explains the the core features and aims of the EPrints package manager which will see its debut in EPrints 3.3 ==Overview== The EPrints Package Manager is basically a cross between a linux package repository and a user friendly GUI store (think fruit flavoured mobile application store). This makes it a highly open platform for developing extensions specific to a single product which has the flexability and functionality of certain closed stores. The EPM system consists of 2 main parts, EPM repositories and the client side EPM manager which handles packages installed both from an EPM repository as well as those sourced locally. The EPM manager is able to source packages from more than one EPM repository as is defined by the EPM manager configuration file stored relative to each repository. The EPM manager is also responsible for handling the installation, location of upgrades and EPM development of a new EPM compliant package. In this document we look at each of the feature of the EPM manager, these in turn aid in the development of an EPM package. ==What is an EPM package and what it is not!== * A EPM package consists of a series of files which can be dropped into the ARCHIVE_ID location at any level. * An EPM package is not able to patch existing files and will exit if an existing file is not managed by the package being installed. * It is possible to perform other changes to the archive not specified in the EPM by adding a custom configuration screen to the package which can be accessed by users after a successful install, more on this later. ==EPM Manager Basics== * Both command line (via tools/epm) and GUI access (via the Admin interface) * Basic commands/capabilities. Just download the epm file and run tools/epm from your eprints home. ** build ** disable ** enable ** install ** link_cfg ** link_lib ** list ** rebuild ** uninstall ** unpack Example command line perl tools/epm install package.epm ==The EPM Admin GUI== The EPM admin GUI reflects the command line access and has 4 main tabs which are displayed depending on if there is content to put on them, e.g. the "Installed Packages" tab will not display until you have an EPM installed. The tabs are (in order of display): ===Available Upgrades=== If a later version of a package is found in an EPM repository to the one you have installed locally, this tab will allow you to install the new version. ===Installed Packages=== From this tab you can view, remove and configure installed packages. ===Available Packages=== This tab shows the packages available from the various EPM repositories you have defined. ===Local Packages=== This tab is the development and advanced administrators tab and allows you to upload a custom package into the EPM manager. Once uploaded these packages are checked for complience to the EPM specification before they can be installed. This also means that this tab is ideal for developmental testing of EPM packages. ==The technical side to the EPM Manager (how it works)== ===Installing & Upgrading=== These are essentially the same as the EPM Manager will check each file it is attempting to installed to see if it meets the following conditions. ====Before install/upgrade==== * Make a backup of any previously installed version of this package. ====During install/upgrade==== * If no file exists at destination install from EPM package, record the installed checksum. * If a file exists and is managed by a previous version of this package (by checksum) copy the new one over the top and checksum. * If a file exists and is not managed by a previous version of this package (including if it has been changed since the last install), abort and remove files installed to this point, then put back the old files. ====After successful install/upgrade==== * Attempt to reload the repository, if this fails, abort and rollback as the user may loose the ability to launch the package manager to do this later! * Store checksums, spec file and related package files (e.g. package icon) locally overwriting any previous. ===Removing=== * Make a backup * Using the checksums file, attempt to remove all files listed if they match their checksum still. * If success, remove package cache, else call a forced install with the backup which will cause it to all be put back how it was. =TODO= * Get postinst/prerm scripts working via a packages configuration screen and define these classes. * Add ability to search the EPM repositories to both GUI and command line. * Add ability to cache package list as a local dataset which can be searched here rather then centrally. * Limit GUI to displaying most popular 20 packages, rest are searched for, this will maintain speed when EPM system gets popular. * Add button to local packages tab to allow a custom package to be submitted to the EPrints central EPM repository. In all fairness the button is there but the EPM repository is still under construction.
Summary:
Please note that all contributions to EPrints Documentation may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
EPrints Documentation:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)