Software Package Management: Weesan Lee
Software Package Management: Weesan Lee
Roadmap
.tar.gz or tgz (Slackware) .rpm (Red Hat, Fedora, SUSE, ) .deb (Debian, Ubuntu) Locate packages on the Internet, download, install and analyze inter-package dependencies. eg.
Meta-package manager
RPM
Redhat Package Management To query what software packages have been installed
$ rpm -e emacs
RPM
Disadvantages
YUM
Yellowdog Update, Modified To find out what software packages have been installed on a system
$ yum list
Installed Packages gawk.i386 3.1.5-14.e15 gcc.i386 4.1.2-14.e15 Available Packages emacs.i386 21.4-19.e16
installed installed
base
YUM
To install emacs
To remove emacs
Some Observations
/usr/bin/ /etc/ /usr/lib/ /usr/include Too Windowish - everything goes to system32 No idea which files belong to which packages
A Potential Solution?
Each software package goes to individual directory, eg. /import/pkgs emacs goes to /import/pkgs/emacs gcc goes to /import/pkgs/gcc Whats wrong with this picture? Need to setup a PATH for each package, eg.
PATH=/import/pkgs/emacs/bin:/import/pkgs/gcc/bin:
It would be nice if /import/bin/emacs /import/bin/gcc And PATH=/import/bin Wait a minute this is the same problem as /usr !!!
pkgtools
/import/pkgs/emacs A placeholder for individual package, such as emacs /import/src/emacs-22.1.tar.gz A place holder for the source code of the package Make soft-links
/import/bin/emacs -> /import/pkgs/emacs/bin/emacs /import/etc/emacs.conf -> /import/pkgs/emacs/etc/emacs.conf * /import/include/ /import/info/ /import/lib/ /import/man/man1/emacs.1 -> /import/pkgs/emacs/man1/emacs.1 /import/sbin/ /import/share/emacs -> /import/pkgs/emacs/share/emacs * There is no emacs.conf
pkgtools
$ gzip -cd /import/src/emacs-22.1.tar.gz | tar xvfp $ ./configure --prefix=/import/pkgs/emacs $ make $ make install
$ pkginstall emacs $ pkgremove emacs $ pkginfo emacs
pkgtools
$ ls -ld /import/etc
Conclusion
rpm or .deb are too primitive yum or apt-get is good for default system installation pkgtools is good for:
Customized or local packages /import can be mounted over NFS for sharing Allow users to install software without root access