Your SlideShare is downloading. ×
]project-open[ Package Manager
]project-open[ Package Manager
]project-open[ Package Manager
]project-open[ Package Manager
]project-open[ Package Manager
]project-open[ Package Manager
]project-open[ Package Manager
]project-open[ Package Manager
]project-open[ Package Manager
]project-open[ Package Manager
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

]project-open[ Package Manager


Published on

This tutorial explains the life cycle of packages in ]project-open[ and how you can use the package manager to install, update and uninstall packages.

This tutorial explains the life cycle of packages in ]project-open[ and how you can use the package manager to install, update and uninstall packages.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. The Package Manager The ]project-open[ Data-Model , Frank Bergmann, 2010-10-05 This tutorial explains the package manager and the life cycle of packages.
  • 2. The Package Manager GUI Example
    • The Package Manager allows to install, update and uninstall packages.
  • 3. What is a Package?
    • A package is the basic unit of application code in ]project-open[/OpenACS
    • ]project-open[ consists of some 200 separate packages.
    • Packages can be installed and uninstalled.
    • A package consists of:
      • Meta-information including package version, dependencies and the “mount” URL
      • A data-model including tables, PL/SQL functions etc.
      • A number of TCL Web-pages
      • A library with TCL functions
  • 4. Package Lifecycle
    • Download: Most packages are part of the ]project-open[ “standard distribution” that you can download from Packages are stored in the ~/packages/ (C:project-open servers projop packages) directory.
    • Installation: Please use the Package Manager (see below) for installing a package. During installation, the Package Manager will execute the data-model creation script and “mount” the package.
    • Update: After updating the package code in /packages/, you run the Package Manager in order to apply changes in the data-model (“upgrade scripts”).
    • Uninstall: You can uninstall a package if no other packages depend on it. During the uninstall, the Package Manager will execute the data-model delete script.
    Installed Install Package Update Package Uninstall Package Start End Download Package
  • 5. Anatomy of the “Notes” Package
    • A package consists of several files and directories with specific conventions for the names of files and folders
    • You need to stick to the conventions, otherwise the package manager won’t recognize your files.
    /packages/intranet-notes/ # Package directory # Meta information /catalog/ # Localization strings intranet-notes.en_US.ISO-8859-1.xml # US English strings intranet-notes.de_DE.ISO-8859-1.xml # German strings /sql/postgresql/ # Data-model intranet-notes-create.sql # Data-model installation script intranet-notes-delete.sql # Data-model delete script /tcl/ # TCL Library intranet-notes-procs.tcl # *-procs.tcl is a library /www/ # TCL Web-Pages index.tcl # TCL logic for index page index.adp # ADP (=HTML) content for index page
  • 6. Package Dependencies
    • The Package Manager allows developers to specify package dependencies.
    • The Package Manager may warn the user before installing users with unsatisfied dependencies or offer to install missing packages.
    • The “.info” package Meta-information file contains two elements for specifying dependencies:
      • Provides : Determines the package name and version provided by the current package
      • Requires : Specifies dependencies on other packages and a minimum version of these packages. There may be more then one “requires” line per package.
    <provides url=&quot;intranet-notes&quot; version=&quot;;/> <requires url=&quot;intranet-core&quot; version=&quot;;/> (Excerpt from /packages/intranet-notes/
  • 7. Package Manager Parameters
    • The Package Manager allows you to define “parameters” for every package.
    • Parameters definitions and default values are stored in the “.info” file with package meta-information.
    • The package manager will read the parameter definitions into the database during package installation.
    • The ]po[ Admin -> Parameters page allows you to modify parameter values.
    • The screenshot at the right shows an excerpt from with two parameters of different type (string and number).
    • You can define new parameters in the Package Manager -> <your package> -> Parameters. Please make sure your .info file is writable, as the PM will write the new parameter right into the file.
    • Please observe the conventions used in other parameter definitions.
    <parameters> <parameter datatype=&quot;number&quot; min_n_values=&quot;1&quot; max_n_values=&quot;1&quot; name=&quot;AuditProjectUpdatesP&quot; default=&quot;0&quot; description=&quot;Enable Auditing?&quot;   /> <parameter datatype=&quot;string&quot; min_n_values=&quot;1&quot; max_n_values=&quot;1&quot; name=&quot;BackupBasePathUnix&quot; default=&quot;/home/ppm/filestorage/backup&quot; description=&quot;Path for backup sets&quot; /> [...] </parameters> (Excerpt from /packages/intranet-core/
  • 8. Writing Package Updates
    • The Package Manager allows to “update” packages:
      • The PM will include your package with an “update” status íf specify a “higher” version number in your .info file then the version stored by the PM
      • The PM will check
  • 9. Notes and Learned Lessons
    • In OpenACS 5.1 (]po[ V3.4 and below) the Package Manager does not correctly work with version numbers with double-digit versions (like 11 ). Please keep version numbers single-digit.
  • 10. Frank Bergmann [email_address]