Pretty soon after starting to build LFS/BLFS I realized I needed some sort of package manager to keep track of what had been installed and where and having come from slackware I was used to the slackpkg package manager so I decided to write my own - This is the result, just download the tarball from here:
http://keithhedger.hostingsiteforfre...g-0.1.9.tar.gz
Unpack it somewhere, cd into the unpacked folder and run the install script as root ie;
Code:
sudo ./LFSPkg.LFSBuild
If you use the template script when you want to update a package just place the new archive in the same folder as the script alter the version number in the script and run ( using wget for instance )
Code:
sudo ./wget.LFSBuild upgrade
The package will be rebuilt and you will be asked which package to upgrade.
A number of package scripts can be found here:
http://keithhedger.hostingsiteforfre...fspkg/packages
Download a single folder (alsa-lib for instance) with:
wget --recursive --no-host-directories --cut-dirs=2 -np --level=1
http://keithhedger.hostingsiteforfre...kages/alsa-lib
Just download the folder and its contents cd into it and run the build script.
These packages including scripts, patches and archives are supplied "AS IS" and you use them at your own risk.
A number of files/folders are used these are:
Installed with lfspkg:
/usr/bin/lfspkg - The main bash script.
/usr/share/LFSPkg/LFSFunctions - helper functions.
/usr/share/man/man1/lfspkg.1 - manpage.
~/.config/lfspkg.rc - Local config file, should contain only the following:
TMP=${TMP:-/tmp/LFS}
OUTPUT=${OUTPUT:-/path/to/store/packages}
Where TMP is the location for tempory files ( defaults to /tmp if not set )
OUTPUT is the location to save built packages ( defaults to /tmp if not set )
/var/lib/LFSPackages - Folder contains gziped lists containg package information.
EXAMPLES
Build and install a package from the current directory:
lfspkg -n "SomePackage" -p "6.6.6" -d "DEV" -b 34 -c
Build a package from the current directory and save to /some/other/tmp:
OUTPUT=/some/other/tmp lfspkg -n "SomePackage" -p "6.6.6" -m
Install a package:
lfspkg "/media/SkyNet/UpdatedPakckages/wget-1.14-1_NET_LFSPKG.tar.gz" -i
Create a template script based on an archive file name:
lfspkg -t wget-1.14.tar.gz
Find a file in an installed package:
lfspkg -f wget
...
wget Found in package: wget-1.14-2_NET_LFSPKG
At these locations:
./etc/wgetrc
./usr/share/man/man1/wget.1
./usr/share/locale/nl/LC_MESSAGES/wget.mo
...
./usr/share/info/wget.info
./usr/bin/wget
...
Find an installed package:
lfspkg wget
Matches for:wget
wget-1.14-1_NET_LFSPKG
Remove a package:
lfspkg -r wget
When removing a package or listing the contents of a package you will be asked to choose from a list of possible matches.
You must have admin priviliges to install or remove files but you do not need to be root to just build a package.
Have a look at the LSFBuild scripts and the man page for more info, hope some of you find this helpful, any suggestions etc please let me know.