Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Source Based Package Manager
C++ C
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


README  Version 0.2
	Author: Bati Sengul
	Bpack developed by Bati Sengul and Michael Bush


1. 	=Installation=

   a.	Pre-requisites
   b.	Instructions

2.	=Usage=

   a.	Installing packages
      i.	Basic installation
      ii.	Terminal
      iii.	Making packages
   b.	Removing packages
      i.	Basic removal
      ii.	Removing scanned files
      iii.	Manual removal
   c.	Upgrading packages
   d.	Running updates
   e.   Listing installed packages
   f.   Clean
   g.	Scanning the computer for pre-installed packages

3.	=Configuration=

   a.   /etc/bpack.conf
   b.   Package making
   c.   Collections

4.	=Helper tools=

   a.   Binpack

5.	=Contributing=

   a.	Development
   b.	Donating

				=== 1 ===  ===Installation===

== a ==  ==Pre-requisites==

Bpack currently requires a working linux/unix system. It also requires gcc, and glibc.

== b ==  ==Instructions==



to run the configure script. Then the package can be made with


and installed as root with,

	make install

One can of course pass parameters such as --prefix to configure and DESTDIR to make to change the destination in which bpack is installed.

				=== 2 ===  ===Usage===

== a ==  ==Installing packages==

=i=   =Basic Installation=

Bpack packages are installed with

	bpack install [package]

[package] is the package to be installed. For example to install gcc,

	bpack install gcc

or to install gcc version 4.3.2,

	bpack install gcc-4.3.2

Multiple packages can be installed from a single call by listing packages, e.g. to install gcc, wget and ncurses call

	bpack install gcc wget ncurses

A lot of packages come with optional dependencies. You can see what will be installed with which optional dependencies by running

	bpack pretend [package]

If you wish to change the optional dependencies, use the environmental variable like this

	OPTIONAL="+foo -bar" bpack install [package]

You can use pretend in the above example if you want to see the changes. If you want further control, bpack stores and uses your optional flags in the options/[package] file. This way you need not to worry about the optional dependencies when you are upgrading.

=ii=   =Terminal=

Bpack also comes with a terminal. If you wish to compile things yourself, run the command

	bpack terminal

to get the bpack terminal. With this terminal you can execute commands as usual (e.g. cd, make, ls) but bpack will trace your make install call and make it a package for you.

A very helpful tool bpack comes with is track. You can use

	bpack track "make install"

to make a package out of something that you have compiled yourself.

== c ==  ==Removing Packages==

=i=   =Basic Removal=

Removing packages with bpack is easy as Mr.T;

	bpack remove [package]

e.g. if you wish to remove gcc (don't do this!),
	bpack remove gcc

As with the install call, remove can take multiple packages to remove. Bpack will automatically check if there are any packages that depend on the package selected to remove.

You may also like to run

	bpack remove hanging

to remove packages that were installed as a dependency for a package the user installed but are no longer needed (i.e. no other package depends on it).

=ii=   =Removing Scanned Files=

For scanning the computer see 3.e. The important thing to remember is to CHECK THE SCAN BEFORE REMOVING FILES that are installed. No seriously. Scanned locations may be completely wrong, it is your duty to check they are sane!!

=iii=   =Manual Removal=

If you do not trust bpack or want to uninstall packages manually for some other reason, it is easy as pi. The locations of the packages will be listed under packs.list. Scanned packages will have a ! proceeding them.

== c ==  ==Upgrading Packages==

If you wish to upgrade a package to a later version, please call bpack with,
	bpack upgrade [package]

Bpack will first try to make the later version of the package, and then remove files, then try to install them. This call may be somewhat dangerous, as in the calls of some core packages.

== d ==  ==Running updates==

To get all the latest packages and scripts you should update bpack regularly. To do this simply call bpack as follows,

	bpack update

We may not have every package that you need. You may wish to manually install any packages we don't have or even better make scripts and send them to us!

== e ==  ==Listing installed packages==

Running the following command

	bpack list

will show the user the packages bpack has under control and the size they take up.
If you wish to know if package x is installed, you can use grep

	bpack list | grep x

To see the size of a package run,

	bpack sizeof [package]

== f ==  ==Clean==

The command

	bpack clean cache

will clear the tarballs and any files bpack has untared. You can use

	bpack clean packs

to clean out the packages (e.g. in the case of switching collections). The call

	bpack clean

will do both of the above calls.

== g ==  ==Scanning the computer for pre-installed packages==

Bpack has its own feature for scanning through the root directory for packages that may have been installed without bpack. Though this method may sound sane to you, rest assured it is not! This method will almost surely not be fool proof, you need to check packs.list afterwards. But do not worry, incase you forget, bpack will remind you when you try to remove or upgrade a scanned package. To call the scan function use,

	bpack scan

				=== 3 ===  ===Configuration===

== a ==  ==/etc/bpack.conf==

Bpack will read all the configuration from this file, other than the environment variable BPACK_DIR which if set, bpack will use as it's base directory (by default this is /var/bpack). The format of the configuration is as follows;


Currently these are the available options and values

	Option		Values			Explanation

	quitlevel	0,1,2,-1,-2		In the negatives, bpack will ask more instead of quiting, in the positives bpack will quit more than usual.
	collection	a collection name	The default collection to get packages from.
	cflags		string			The cflags that bpack should apply
	cxxflags	string			The cxxflags that bpack should apply
	optional	string			Default set of optional packages to install, choose from all, recommended, none.

== b ==  ==Package making==

The package format for bpack is very simple so users should not be afraid of making their own. Just like the conf file, the format is


Bpack will read the lines untill the next option (ignoring the empty lines) so multiline values are welcome. The only required option is location. Here is a list of options and what they do;

	Option		Action

	location	The url for the tarball, incase it needs to be downloaded
	deps		Dependencies separated by commas
	optional	Optional dependencies, recommended ones should have a ! before them (i.e. foo,!gcc,bar)
	config		Parameters to be passed to ./configure (e.g. --prefix=/usr)
	make		Paramerers to be passed to make
	makeinst	Parameters to be passed to makeinst
	preinstall	Things to execute before the install in the unpacked tar directory
	postinstall	Things to execute after the install in the unpacked tar directory
	conf		The contents of the configuration file, make sure you set conffile if you use this option
	conffile	The location of the configuration file
	patches		The location of patches to be downloaded and applied (seperated by commas)

Many of these can be left out. To stop bpack from running ./configure, make or make install, pass the value  no  to config, make or makeinst.

The package must be saved under bpack_dir/packs/ and the format for the file name is


The conf: option is a bit special in the sense that it should be written like a diff. To insert a line use + and to delete a line use -.

== b ==  ==Package making==

Share your bpack experience with others and create a collection. A collection is a bunch of packages (you can nick packages from other people) that the user will receive when they update. For more information, register at .

				=== 4 ===  ===Contributing===

== a ==  ==Binpack==

Binpack is a helper script for bpack. As the name suggest, it installs binary packages from other package managers. We know that programs such as Firefox may take a long time to compile. Binpack will install Debian (including Ubuntu) and Archlinux packages. The format is

	binpack [file]

The file must end with a .deb or .i686.pkg.tar.gz. Binpack will allow bpack to manage dependencies and also keep track of the packages.

				=== 5 ===  ===Contributing===

== a ==  ==Development==

We always need more people to help develop bpack. If you are a programmer, talk to us about joining in the project. We welcome any bug fixes, ideas, comments, criticism or patches. If you have packages that you made yourself, do send them in. If you do not program you can help us by making packages and testing unstable versions of bpack.

Feel free to come and talk to us ;)

You can join us on #bpack @ freenode, or email us
	Bati Sengul <>
	Mike Bush <>

Visit our website at

== b ==  ==Donations==

Hope springs eternal eh?

Something went wrong with that request. Please try again.