Changeset 945ccaa for README.PACKAGE_MANAGEMENT
- Timestamp:
- 04/09/2017 10:29:32 AM (7 years ago)
- Branches:
- ablfs-more, legacy, trunk
- Children:
- cee84ad
- Parents:
- 909ee37
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
README.PACKAGE_MANAGEMENT
r909ee37 r945ccaa 7 7 There are several hints discussing package management for LFS, but 8 8 nothing under jhalfs. There used to be a patch for PACO that I cannot 9 find now. This is a modification ("DESTDIR install" automation), which10 allows to use a package manager inside jhalfs. I hope it is flexible enough11 to support several package managers, at least among those who use DESTDIR12 install. My initial implementation used dpkg, from Debian, in a very13 crude way (Debian has a sophisticated package management system, which14 I have not tried to use here). There is also a port to Pacman from15 Arch Linux (http://www.archlinux.org). I am sorry to say I have (almost)16 no experience with rpm, so I cannottell whether it would fit.9 find now. So there was a need for such a tool, and an infrastructure, 10 which allows using a package manager inside jhalfs, has been developped. 11 I hope it is flexible enough to support several package managers, at least 12 among those who use DESTDIR install and/or LD_PRELOAD during install. 13 It has been tested with dpkg from Debian, pacman from Arch Linux, 14 and porg. Sample configuration files are given for those three packages. 15 I am sorry to say I have (almost) no experience with rpm, so I cannot 16 tell whether it would fit. 17 17 18 18 2. OVERVIEW OF THE SYSTEM: 19 19 20 Presently, package management is only available for LFS. I plan to 21 upgrade BLFS tools, but nothing usable right now. I have not attempted 22 to adapt this tool for the other flavours of LFS. 20 For now, package management is only available for LFS. The `porg style' 21 (see below) package management has been ported to BLFS, but not the distro 22 style one (the book layout makes it rather difficult). I have not attempted 23 to adapt this tool for the other flavours of LFS (TODO). 23 24 24 To use package management, you need to create the required files in 25 the pkgmngt directory (see below), and to select "package management" in 26 the build settings. Note that this is incompatible with creating an SBU 27 and usage report. 25 This tool comes in two flavours: 26 - for distros package managers (e.g dpkg or pacman), it basically performs 27 a "DESTDIR install" for all pages in chapter 6, 7 and 8 of the book. The 28 name of the DESTDIR directory is the same as the one of the executed 29 script. The path to this directory is available to the scriplets through 30 the PKG_DEST variable. The details of the DESTDIR part are given below. 31 After the package is installed in $PKG_DEST, a function "packInstall" is 32 called, which is supposed to create a binary package (e.g. make a .deb 33 file), store it to a repository and install it to the system. 34 - for porg style package manager, the install instructions are wrapped 35 between pairs of single quotes ('). This allows passing those instructions 36 to a function ("wrapInstall"), which may itself call porg or another 37 (e.g. fakeroot, not tested) instruction wrapper. Note that if the 38 instructions contain single quote charaters, they are changed to '\'', 39 which pass them literally. At the end of the installation, a function 40 "packInstall" is called, with a slighly different aim compared to the 41 DESTDIR one: it is used to make a tarball of the installed files (e.g. 42 using "porgball") and store them into some repository. But there is no 43 need to install them to the system, since this has already been done. 28 44 29 3. DETAILS OF OPERATION: 45 Note that with carefully crafted "packInstall" and "wrapInstall" 46 functions, a combination of the two methods could be used, for example for 47 DESTDIR installs using fakeroot. This is work in progress and not fully 48 implemented yet. 30 49 31 This system performs basically a "DESTDIR install" for all pages 32 in chapter 6, 7 and 8 of the book. The name of the DESTDIR directory is the 33 same as the one of the executed script. The path to this directory is 34 made available to the scriplets through the PKG_DEST variable. 50 3. DETAILS: 51 35 52 The XSL stylesheet used for generating the scriptlets, automatically 36 53 adds DESTDIR install instructions when "package management" is selected. … … 44 61 directory. Empty directories are then removed before packing the 45 62 binary package. 63 46 64 In order to use the package manager, it has to be installed at the end of 47 65 chapter 5 (temporary installation in /tools) and chapter 6 (final install). … … 52 70 This file should reside in the `pkgmngt' directory and be named 53 71 `packageManager.xml'. A template named `packageManager.xml.template' is 54 provided in the `pkgmngt' subdirectory. There are also two XML files for 55 dpkg and pacman, respectively `packageManager.xml.dpkg' and 56 `packageManager.xml.pacman', that you can copy to `packageManager.xml'. 72 provided in the `pkgmngt' subdirectory. There are also three XML files for 73 dpkg, pacman, and porg, respectively `packageManager.xml.dpkg', 74 `packageManager.xml.pacman', and `packageManager.xml.porg', that you can 75 copy to `packageManager.xml' and modify to suit your needs. 57 76 They are not updated often, so the versions used can be rather old. 58 The last thing to do is to tell how to use the package manager. When 59 the binary package is ready, the scriptlets call a shell function named60 `packInstall', which should pack the binary package and install it on the61 system. Note that nothing has been done to manage configuration files,77 78 The last thing to do is to tell how to use the package manager. The user 79 has to provide two functions, "wrapInstall" and "packInstall", as described 80 above. Please note that nothing has been done to manage configuration files, 62 81 which are ususally treated specially by package managers: depending on 63 82 the book layout, it is sometimes possible to create those files afterwards, 64 83 and sometimes not, which means that you have to check them after each 65 upgrade. The user has to write his own `packInstall' function. The shell66 function should be defined in a file named `packInstall.sh', residing in67 the `pkgmngt' directory. A template is provided, as well as two example68 scripts for dpkg and pacman. Note that, due to the way pacman checks the69 available space on disk, the root directory in chroot must be a mount point,70 otherwise theinstallation of packages fails.84 upgrade. Both functions should be defined in a file named `packInstall.sh', 85 residing in the `pkgmngt' directory. A template is provided (actually a copy 86 of the file for dpkg), as well as three example scripts for dpkg, pacman, 87 and porg. Pacman Note: due to the way pacman checks the available space on 88 disk, the root directory in chroot must be a mount point, otherwise the 89 installation of packages fails.
Note:
See TracChangeset
for help on using the changeset viewer.