Clone this wiki locally
Welcome to the spackle wiki!
Create a local system at
$HOME/local. (So you have a
$HOME/local/etc folder for config files,
$HOME/local/usr/bin for binary executables,
$HOME/local/usr/lib for libraries, etc.)
Activating spackle tells your system about these new paths.
- setup MANPATH
- setup pkg-config path
- setup CFLAGS and LDFLAGS for compiling C code
Update list of installable packages at
- ArchLinux official binary packages: download the
community.dbindices (these are tarballs of package desc and depends files.)
- ArchLinux build scripts (ABS): generate file list from ABS rsync server or svn repo
- ArchLinux user repo (AUR) scripts: generate file list from AUR git repo's cgit interface. (Alternative is to use aur3.org to download PKGBUILD tarball)
- Debian binary packages
- Debian source packages
- Store built packages at
- Build source packages inside
- Installed packages have a folder at
- Retain file list (for uninstallation) and package info at
- Retain package info (version, description, dependencies) at
- If the package is installed as a dependency for another explicitly installed parent package, record the parent package name in
- Delete files listed in
- Remove self from child dependencies
- Ask to remove children which are no longer needed
- Use a config file to ignore some dependencies like glibc for system libraries which are already installed.
- For binary packages of executables and libraries, try to use
patchelfto modify the RPATH in the elf header so that the dynamic linker can find shared libraries in our '$HOME/local' folder.
- For C/C++ source packages set environment variables CFLAGS="-I$HOME/local/usr/include" CXXFLAGS="-I$HOME/local/usr/include" LDFLAGS="-L$HOME/local/usr/lib -Wl,-rpath,$HOME/local/usr/lib" LD_RUN_PATH="$HOME/local/usr/lib" Also consider trying to set rpath to a relative location $ORIGIN/../lib so that packages are redistributable to different users