UmVirt LFS Packages Server info

📦Package Server info

🔙Parent Directory  -

How it works?

Service Environment

A simple server environment:

Service Web-application

The server applications contain three parts:

Database

The database stores all package information:

  1. source package file (typicaly "%package_name%.tar.gz"),
  2. source package directory (directory with source package files,
  3. patches (source code fixes which are not included in source packages),
  4. addons (extra downloads, additional files),
  5. dependances (which packages should be installed before others),
  6. comments (useful information to/from maintainers),
  7. nestings (links to other packages whichs can be built separately, but installed with the current package. Thus, have common source code. For example, some server packages (postgresql-server) can lead to instaling client packages (postgresql-client).)
  8. configure command(s) (typicaly "./configure --prefix=/usr"),
  9. build command(s) (typicaly "make"),
  10. install commands(s) (typicaly "make install")

In order to maintain compatibility with different versions of packages, packages have been separated by ULFS release versions. Each ULFS Release has a set of packages with specific package versions. ULFS Version 0.1 contains packages of LFS v. 8.3.

File storage

If source packages are stored localy, they remain separated by ULFS release for the package assistant.

All package files within a release directory are further split into folders:

Site

The website does the thinking for the application. It gathers it's data from the other aplication parts and produce HTML-pages, JSON-files, XML-files, and generates the install scripts for the packages.

Client

Environment

The Client environment is any Linux From Scratch with these assumptions:

Directory Structure

/sources
	.cleanup

/var
	cache/
		ulfs-packages/
			%packagename%
	log/
		ulfs-packages/
			%packagename%/
				start.time
				download.time
				[cleanup.time]
				unpack.time
				configure.time
				build.time
				install.time
				finish.time

				files.txt

/sources/

This directory is used to store source package archives and directories.

.cleanup - if this empty file is found. the directory gets removed before unpacking source packages.

/var/cache/ulfs-packages/

This directory is used as a database of installed packages.

%packagename% - Each empty file represents package with same name.

Installation scripts check for this files existance to decide if it need to install dependances. If a cache file is deleted, an installation script will reinstall it if it is depended on

/var/log/ulfs-packages/

This directory is used to record all information about the source package's journey during its installation proccess.

%packagename%/ - Each folder represents a package with same name.

Timestamp files are kept for identifing installed files and can be used for profiling:

files.txt - list of installed files

Autonomous installation Directory Structure (Off-line disk)

/mnt/umvirt/
	files/
		%release%/
			packages/
			patches/
	packages/
		%release%/
			%packagename%.sh

/mnt/umvirt/ - the directory or symlink to directory which contain local installation data (for offline builds)

files/ - the directory which contains umvirt lfs files

files/%release%/packages/ - the directory which contains source package files for each release

files/%release%/patches/ - the directory which contains source package patches for each release

packages/ - the directory which contains installation scripts.

packages/%release%/%packagename%.sh - each script represents a package with same name for each specific release.

Packages and patches can be download from the UmVirt LFS website. Also, you can download the packages from the BLFS mirrors and the developers' sites.

Installation scripts are generated by the UmVirt LFS Packages service. You can download the scripts from the UmVirt LFS site or generate your own.


Apache/2.4.62 (Debian) Server at ulfs.org Port 443