Changeset 2706ad5
- Timestamp:
- 03/20/2017 03:14:54 PM (7 years ago)
- Branches:
- new_features
- Children:
- 085739c
- Parents:
- 89b7cce
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
README
r89b7cce r2706ad5 23 23 the resulting .config file. 24 24 25 *. Read carefully this file and the other README.* files before beginning26 t o use this tool.25 *. Read carefully this file and the other README.* files before using 26 this tool. 27 27 28 28 2. PREREQUISITES:: -
README.PACKAGE_MANAGEMENT
r89b7cce r2706ad5 1 1 TITLE : Package management in jhalfs 2 2 BY : Pierre Labastie (work in progress) 3 $Id$ 3 4 4 5 1. INTRODUCTION: … … 6 7 There are several hints discussing package management for LFS, but 7 8 nothing under jhalfs. There used to be a patch for PACO that I cannot 8 find now. This is a modification ("DESTDIR install" automation), which9 allows to use a package manager inside jhalfs. I hope it is flexible enough10 to support several package managers, at least among those who use DESTDIR11 install. My initial implementation used dpkg, from Debian, in a very12 crude way (Debian has a sophisticated package management system, which13 I have not tried to use here). There is also a port to Pacman from14 Arch Linux (http://www.archlinux.org). I am sorry to say I have (almost)15 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. 16 17 17 18 2. OVERVIEW OF THE SYSTEM: 18 19 19 Presently, package management is only available for LFS. I plan to 20 upgrade BLFS tools, but nothing usable right now. I have not attempted 21 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). 22 24 23 To use package management, you need to create the required files in 24 the pkgmngt directory (see below), and to select "package management" in 25 the build settings. Note that this is incompatible with creating an SBU 26 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. 27 44 28 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. 29 49 30 This system performs basically a "DESTDIR install" for all pages 31 in chapter 6, 7 and 8 of the book. The name of the DESTDIR directory is the 32 same as the one of the executed script. The path to this directory is 33 made available to the scriplets through the PKG_DEST variable. 50 3. DETAILS: 51 34 52 The XSL stylesheet used for generating the scriptlets, automatically 35 53 adds DESTDIR install instructions when "package management" is selected. … … 43 61 directory. Empty directories are then removed before packing the 44 62 binary package. 63 45 64 In order to use the package manager, it has to be installed at the end of 46 65 chapter 5 (temporary installation in /tools) and chapter 6 (final install). … … 51 70 This file should reside in the `pkgmngt' directory and be named 52 71 `packageManager.xml'. A template named `packageManager.xml.template' is 53 provided in the `pkgmngt' subdirectory. There are also two XML files for 54 dpkg and pacman, respectively `packageManager.xml.dpkg' and 55 `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. 56 76 They are not updated often, so the versions used can be rather old. 57 The last thing to do is to tell how to use the package manager. When 58 the binary package is ready, the scriptlets call a shell function named59 `packInstall', which should pack the binary package and install it on the60 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, 61 81 which are ususally treated specially by package managers: depending on 62 82 the book layout, it is sometimes possible to create those files afterwards, 63 83 and sometimes not, which means that you have to check them after each 64 upgrade. The user has to write his own `packInstall' function. The shell65 function should be defined in a file named `packInstall.sh', residing in66 the `pkgmngt' directory. A template is provided, as well as two example67 scripts for dpkg and pacman. Note that, due to the way pacman checks the68 available space on disk, the root directory in chroot must be a mount point,69 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. -
pkgmngt/packInstall.sh.porg
r89b7cce r2706ad5 53 53 # in version. 54 54 esac 55 echo $VERSION 55 echo ${VERSION,,} # convert to lowercase, in case there is a capital letter 56 # in version 56 57 } 57 58
Note:
See TracChangeset
for help on using the changeset viewer.