packø - The "pacco" package manager.
packø is a package manager inspired by FreeBSD ports and Gentoo Portage which aims to be even more flexible and easy to work with.
How to install
To install packo just clone the repo, build the gem and install it.
$ git clone git://github.com/distro/packo.git $ cd packo $ gem build *spec # gem install *gem
And then install the adapter you want to use, to get a list of adapters do
$ gem list --remote "dm-.*-adapter"
Then modify the
PACKO_DATABASE env variable and you're ready to use packo.
At this point you should install
sandbox which is developed by Gentoo devs
fakeroot which is developed by Debian devs.
How to setup
$ packo repository remote add https://github.com/distro/remotes/raw/master/official.yml $ packo repository add source/universe $ packo repository add binary/universe/linux/core2
This adds two repositories and gives you some packages.
How to use
Let's start with some simple usage examples
$ packo repository search "(library)"
This searches all packages that have library as tag.
To get more informations about packages do
$ packo repository info "(library)"
This will give a lot of informations about the package.
You can also build packages into .pko files.
$ packo build package fluxbox
This will build fluxbox.
To get a list of packø's environment variables just do:
$ packo env show
To install a package just do:
$ packo install package
It should build and install the package or download the binary package and install it.
If you have a local .pko file you can install it directly:
$ packo install package.pko
If you get a huge error message about
sandboxit means it tried to access some place it wasn't supposed to, so sandbox killed the process to prevent damages, if you're sure you wanted it to access that place configure
sandboxto be able to do so. Read
sandbox's documentation to know how.
If you can't install
fakerootyou can use packo anyway, just don't use the protected syntax (packo
<command>) but use
packo-<command>which is the not secure way. I suggest getting
fakerootanyway because packages could do something harmful by mistake or on purpose, you can never know.
It's slow as hell :(
Actually it isn't, it's slow at starting because it has to require lot of stuff and the models have to be checked when required, so majority of the time is spent there. I'll probably implement a server/client thingy to speed things up.
Installation isn't slow, sqlite is slow at changing data in the db (mainly related to deletetion), so choose another adapter and you'll get it fast, remember that sqlite is fast at selecting, so searches of packages/files/whatever will be fast and updates/installations will be slow, choose the adapter that better suits your needs.
I've worked hard on improving speed so theoretically now it's a lot faster with all the data changing, as long as the adapter supports transactions.