Introduction
Conary is a free software package management system created by rPath and distributed under the terms of the Common Public License. It focuses on installing packages through automated dependency resolution against distributed online repositories, and providing a concise and easy-to-use Python-based description language to specify how to build a package. It is used by Foresight Linux and rPath Linux.
Conary updates only those specific files in packages which need to be updated; this behavior minimizes bandwidth and time requirements for updating software packages. Conary also features Rollbacks of package installation as well as derived packages.
The goal of this project is to evaluate Conary for use with the OpenSolaris code base.
The open questions are:
- Can Conary be leveraged to make a modern distro builder for OpenSolaris?
Yes (Finish date: TBD) - Can Conary replace the ON build process?
Unrelated. Conary can use ON binary packages, or build the WOS, or if enough manhours are invested compliment a refactoring of the O/N dependency tree. - Can Conary provide a simple updated package management system for OpenSolaris?
Yes. One of Conary's strengths is it's network repository. - Can Conary be used with alternate packaging system packages as inputs? (IE: System V Packages)
Not currently. However it is a simple matter to write extensions to "ingest" various source and binary package formats. - Can Conary be used with both Sparc and Intel platforms?
Yes. This is working now. - Can Conary be used for cross compiling the PowerPC port?
In theory yes. But this is not practicable at this point, as it involves way too much work. (Considering that the PowerPC port only runs on the ODW platform (EOL'ed), and doesn't bring up a shell prompt. - Can Conary use alternate repositories to describe third party non-redistributable binary packages?
Yes. This would have to be worked out on the licensing side. (with the third parties.) - Can Linux Conary source repositories be leveraged?
Unknown. For now we are focusing on testing with our own OpenSolaris Conary repositories.
Package management options (partial):
- dpkg, used originally by Debian and now by other systems, uses the .deb format and was the first to have a widely known dependency resolution tool (APT).
- The RPM Package Manager was created by Red Hat, and is now used by a number of other Linux distributions. RPM is the Linux Standard Base packaging format and is the base of a large number of additional tools, including apt4rpm, Red Hat's up2date, Mandriva's urpmi, openSUSE's YaST and YUM, used by Fedora and Yellow Dog Linux.
- ipkg, a dpkg-inspired, very lightweight system targeted at storage-constrained Linux systems such as embedded devices and handheld computers
- SysV format (sometimes called pkgadd format), used by Solaris.
- Portage and emerge are used by Gentoo Linux. They were inspired by the BSD ports system and use scripts called ebuilds to install software.
- The FreeBSD Ports Collection, sometimes known as just ports, uses a system of Makefiles to install software from sources or binaries. MacPorts (for Mac OS X), NetBSD's pkgsrc and OpenBSD's ports collection are similar.
- The Nix Package Manager manages packages in a purely functional way.
Source: <http://en.wikipedia.org/wiki/Package_management_system>
Status
Currently work is being done to see if this port is possible. (Initially simply as a package management system layered on top of SXCE/SXDE) Currently Conary is running on top of SXCE but as of yet it is not building or installing packages.
(Update: We are running Conary on Sparc/x86. Downloading, installing and building packages from network repositories works.)
- Installation and Packaging
- System administration