tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

First pkg_dry milestone

Hi list,

as said here a couple of days ago, I'm writing an apt/yum-like software for NetBSD. This software, called pkg_dry ("dry" as "without pkgsrc"), aims to be a binary package manager relying on pkg_summary(5), permitting to install, remove and upgrade packages and dependencies using a remote repository.

As of today, pkg_dry is capable of handling these operations :

. package + dependencies installation
. package + reverse dependencies removal
. package + dependencies upgrade

Plus convenient features to display direct dependencies, reverse dependencies and full dependency tree.

I've been more or less the only tester, since pkg_dry still contained debug-related code that made its usage painful. As you may understand, I think it is now time for the software to be tested more widely, and on more (and possibly slower). Pkg_dry is _not_ finished, still many things must be done in order to compete with its Linux equivalents, here's a short-term TODO I have in mind :

. lots of testing
. disk space before download
. add the ability to operate on more than one package at the command line
. an "autoremove" feature to delete orphan dependencies
. multiple repositories handling
. write a manpage :)

The first milestone of pkg_dry is available at

Pkg_dry only depends on databases/sqlite3. It is known to build on NetBSD 5.0 and current. To build it under NetBSD 4.0, you'll need also archivers/libarchive and net/libfetch.

As the software is not yet "productized", some steps still need to be done manually :

. create the database and cache repository

# mkdir -p /var/db/pkg_dry/cache

. set the initial database

# PKG_PATH=; export PKG_PATH
# pkg_dry -u

Here's a data that I may want to know: how long does the database build take on your architecture ? On an Athlon 1600+, time, including pkg_summary download, indicates about 15 seconds.

From here you can test installation :

# pkg_dry -i <package>

Where <package> is the PKGPATH name of the package without category, i.e. :

# pkg_dry -i apache


# pkg_dry -i apache2


# pkg_dry -i apache22

To list available packages and their correct names :

# pkg_dry -a

To list installed packages

# pkg_dry -l

To remove a package and it's reverse dependencies :

# pkg_dry -r <package>

Removal order should be ok for pkg_delete.

Package upgrade :

# pkg_dry -i <package>

for example :

# pkg_dry -i apache2
# pkg_dry -i apache22

Direct dependencies are shown using the following flag :

# pkg_dry -d <package>

Full dependency tree for a package :

# pkg_dry -t <package>

Reverse dependencies for an installed package :

# pkg_dry -T <package>

Do not hesitate to send me bug reports, feedback and maybe ideas so the software can be used by everyone to handle binary packages on its NetBSD system.

Best regards,

Emile "iMil" Heitor <>                              
                     ASCII ribbon campaign ( )
                                                    - against HTML email  X
                                                                & vCards / \

Home | Main Index | Thread Index | Old Index