Manual: add a section about INSTALL/REMOVE files.
This commit is contained in:
parent
5fa20cf452
commit
16c4e6840b
1 changed files with 37 additions and 0 deletions
37
Manual.md
37
Manual.md
|
@ -588,6 +588,43 @@ Dependencies declared via `${depends}` are not installed to the master directory
|
||||||
only checked if they exist as binary packages, and are built automatically by `xbps-src` if
|
only checked if they exist as binary packages, and are built automatically by `xbps-src` if
|
||||||
the specified version is not in the local repository.
|
the specified version is not in the local repository.
|
||||||
|
|
||||||
|
### INSTALL and REMOVE files
|
||||||
|
|
||||||
|
The INSTALL and REMOVE shell snippets can be used to execute certain actions at a specified
|
||||||
|
stage when a binary package is installed, updated or removed. There are some variables
|
||||||
|
that are always set by `xbps` when the scripts are executed:
|
||||||
|
|
||||||
|
- `$ACTION`: to conditionalize its actions: `pre` or `post`.
|
||||||
|
- `$PKGNAME`: the package name.
|
||||||
|
- `$VERSION`: the package version.
|
||||||
|
- `$UPDATE`: set to `yes` if package is being upgraded, `no` if package is being `installed` or `removed`.
|
||||||
|
- `$CONF_FILE`: full path to `xbps.conf`.
|
||||||
|
- `$ARCH`: the target architecture it is running on.
|
||||||
|
|
||||||
|
An example of how an `INSTALL` or `REMOVE` script shall be created is shown below:
|
||||||
|
|
||||||
|
```
|
||||||
|
# INSTALL
|
||||||
|
case "$ACTION" in
|
||||||
|
pre)
|
||||||
|
# Actions to execute before the package files are unpacked.
|
||||||
|
...
|
||||||
|
;;
|
||||||
|
post)
|
||||||
|
if [ "$UPDATE" = "yes" ]; then
|
||||||
|
# actions to execute if package is being updated.
|
||||||
|
...
|
||||||
|
else
|
||||||
|
# actions to execute if package is being installed.
|
||||||
|
...
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
```
|
||||||
|
|
||||||
|
> NOTE: always use paths relative to the current working directory, otherwise if the scripts cannot
|
||||||
|
be executed via `chroot(2)` won't work correctly.
|
||||||
|
|
||||||
### Creating system accounts/groups at runtime
|
### Creating system accounts/groups at runtime
|
||||||
|
|
||||||
There's a trigger along with some variables that are specifically to create
|
There's a trigger along with some variables that are specifically to create
|
||||||
|
|
Loading…
Reference in a new issue