diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2017-10-07 19:32:06 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2017-10-07 19:32:06 -0300 |
commit | 0d6bcb2b7d08e3a41481372c1ae0d11868d88b1b (patch) | |
tree | d4429ce3a62e9cb5d095ad567b5f821d99a7b9f5 /tags/0.5.1/doc/README | |
parent | 5bfb15bdbedbc7273a283d611c84ed1cf401011b (diff) | |
download | simplepkg-0d6bcb2b7d08e3a41481372c1ae0d11868d88b1b.tar.gz simplepkg-0d6bcb2b7d08e3a41481372c1ae0d11868d88b1b.tar.bz2 |
New repo layout with git migration
Diffstat (limited to 'tags/0.5.1/doc/README')
-rw-r--r-- | tags/0.5.1/doc/README | 428 |
1 files changed, 0 insertions, 428 deletions
diff --git a/tags/0.5.1/doc/README b/tags/0.5.1/doc/README deleted file mode 100644 index 47143ca..0000000 --- a/tags/0.5.1/doc/README +++ /dev/null @@ -1,428 +0,0 @@ -Simplepkg: installation manager and packaging system ----------------------------------------------------- - -Author: Silvio Rhatto <rhatto at riseup.net> -Licence: GPL - -Simplepkg is a non-intrusive management system running on top of pkgtool made of a -set of scripts which helps the sysadmin and developing cycles of an slackware system. -It can be used to create packages and repositories as long as the operational system -installation and config file change tracking. - -Documentation -------------- - - English documentation: README | http://slack.sarava.org/simplepkg-en - Portuguese documentation: REAMDE.pt_BR | http://slack.sarava.org/simplepkg - -Description ------------ - -All GNU/Linux distributions comes with a well developed packaging system. The question now -is how pratical is the way to install, configure and control any changes in a system. - -As an example, suppose you should keep a list of about 200 slackware machines, some -of them used as desktops, others as mail or webservers. If you lost some hardrives -or usually need to re-install or update some of those boxes. - -Using the slackware installation cd and configuring by hand all the time you got a crash -is a time loss activity and you'll never know if something remained missconfigured. An -alternative is to keep a complete backup of a machine or some parts of the tree, but for -a large number of different boxes this procedure costs a lots of resources. - -Simplepkg offers an alternative sollution for this and other problems related to installation -management, allowing you to keep templates of each machine and install a custom slackware -system with just one or a few commands. Creating and upgrading chroot and vservers is easy -with simplepkg. - -Package and installation management is not everything simplepkg can do. It can also be used -to create vservers, create packages and store system configuration files in a subversion -repository. - -Simplepkg works with any (official or not) slackware port that follows the minimum system -guidelines. - -Architecture ------------- - -Simplepkg is a set of scripts wrote in the KISS philosophy. Its a pretty simple system, composed -by the following commands: - - - mkjail: build a slackware jail/installation in a folder - - templatepkg: create or update a package list of an installation template - - lspkg: show installed packages and its contents - - jail-commit: update all configuration files of a template - - jail-update: jail-commit counterpart - - rebuildpkg: rebuild a package based on its /var/log/packages entry - - simplaret: package retrieval tool - - createpkg: donwload, compile and package creationg script - - repos: creates and manages binary repositories - - mkbuild: app to build slackware build scripts - -Installation ------------- - -The latest version of simplepkg is locate at http://slack.sarava.org/packages/noarch/. -Install it with the usual way: - - installpkg simplepkg-VERSION-noarch-BUILD.tgz - -Simplepkg usage ---------------- - -The three main simplepkg uses are: - - - Package managemen - - Jail/installation creation and management - - Package creation - -Package management is made with simplaret app, whose behaviour is detailed in its own document. -The following sections will only show how simplepkg can be used to manage jails and template -and create packages. - -Creating templates ------------------- - -Initially, simplepkg was built to help slackware install automation. To do that, it uses installation -templates -- lists of installed packages, post-installation scripts and config files -- allowing the -creation of installation profiles that can be used for system replication in other partition or even -custom chroot building. - -Template creation is done with "templatepkg" script. To create a template called "my-slackware" containig -the installed package list of your slackware installation, just type - - templatepkg -c my-slackware - -The -c (or --create) flag tells templatepkg to create the /etc/simplepkg/templates/my-slackware folder -with the following components: - - - /etc/simplepkg/templates/my-slackware/my-slackware.d: template config files - - /etc/simplepkg/templates/my-slackware/my-slackware.s: post-installation scripts - - /etc/simplepkg/templates/my-slackware/my-slackware.perms: metadata for config files - - /etc/simplepkg/templates/my-slackware/my-slackware.template: installaed package list - -This four components are enough to store all slackware installation characteristics: the package list -controls with applications are installed, the config file folder can contain all desired configurations -for any installed application and the post-installation scripts take care of all procedures that should -be executed exactly after the system installation. The my-slackware.perms file contains metadata for the -saved config files, i.e, permission and ownership. - -If you want to build a template from a installation placed in another folder or partition thats not your -current root dir, just type something like - - templatepkg -c my-slackware /mnt/slackware - -where /mnt/slackware is the place where this alternative system is installed. After created, the template -will contain just the installed package list or that folder. As the folder /var/log/packages of your -installation doesn't keep information about the package installation order, its recommended that you -manually edit the template's package list. To do that, just type - - templatepkg -e my-slackware - -To add configuration files inside the template, type something like - - templatepkg -a my-slackware /etc/hosts - -This should add /etc/hosts file to "my-slackware" template. Beyond just automatically copy the file -when you install a new system using this template, simplepkg can also take care of every change that -/etc/hosts can suffer on your system, such as file content or permission and ownership change. If you're -also storing your templates in a subversion repository, you'll be able to track all changes it ever had. - -WARNING: avoid the storage in a template of config files that contains important security information -such as passwords or secret keys. The prefered place to put such stuff is a secured backup. - -Creating jails and replicating installations --------------------------------------------- - -As long as your template was created and populated with the package list, configuration files and -post-installation scripts (what will be treated in another section), your can replicate your slackware -installation as simpler than typing the following command: - - mkjail jail my-slackware - -This creates a fresh slackware tree at /vservers/jail with all packages listed in the template "my-slackware" -and all saved config files. The package installation is made by simplaret app, that should be properly configured. -The standard simplaret configuration should work for most situations. - -If you want to install your jail in a place other than /vservers (this standard location can be changed through -simpleokg config file), say /mnt/hda2, just use something like that: - - ROOT=/mnt mkjail hda2 my-slackware - -The above command does exactly what you think: installs slackware in /mnt/hda2 with exactly the same packages -you have on your system, replacing the need of the slackware installer! - -In case no template specified, mkjail uses the one stored /etc/simplepkg/default, if exists. Simplepkg already -came if some pre-built templates at /etc/simplepkg/defaults/templates. - -Post-installation scripts -------------------------- - -Optionally, its possible to keep post-installation scripts inside a template. Such scripts are executed by mkjail -exactly after a jail is installed and the template config files copied. To create or edit a post-installation -script, just type - - templatepkg -b my-slackware script-name.sh - -This adds the script-name.sh at "my-slackware" template. Mkjail passes two command line arguments to a post-install -script: the upward folder and the jail's name ("/mnt" and "hda2" from our previous example). Then, an example script -is something like that: - - #!/bin/bash - chroot $1/$2/ sbin/ldconfig - -Listing template contents -------------------------- - -To list available templates or the template content, use commands such as - - templatepkg -l - templatepkg -l my-slackware - -Removing files from a template ------------------------------- - -As you did to add files, you can easily remove then from a template, using a comand such as - - templatepkg -d my-slackware /etc/hosts - -This removes the file /etc/hosts from "my-slackware" template. - -Removing a template -------------------- - -To remove a template, just type - - templatepkg -r my-slackware - -Updating a template -------------------- - -Now that we just talked about creating templates and jails, its time to cover another application, this time -used to keep a template always updated. Jail-commit is a script that copies all config file changes (content, -permissions and ownership) from a installation to a simplepkg template. - -For instance, if one wants to copy all changes from /mnt/hda2 jail into "my-slackware" template, he or she -just needs to type the following command: - - jail-commit /mnt/hda2 my-slackware - -Not just the package list from "my-slackware" template is updated according the installed packages from -/mnt/hda2/var/log/packages: all config files from "my-slackware" template are compared it the ones from -the jail and in case of any difference they're copied from the jail back to the template. Permissions -and file ownership commit into the template works at the same way. - -Jail-commit allows that a template to being kept always updated and mirroring the actual configuration -of an installed system. But if you want just to commit into the template just the installed package -list, simply type - - templatepkg -u my-template - -To make life even easier, there's also a feature of keeping a list of all installed slackware system in -the box in the file /etc/simplepkg/jailist. This file, despite its use by simplaret (what is described -in its own text), allow jail-commit to run with no arguments. - -Suppose you have three slackware installations: the root system and two more: - - - /mnt/slackware-1 using "slackware-1" template - - /mnt/slackware-2 using "slackware-2" template - -If your /etc/simplepkg/jailist has the following lines: - - /mnt/slackware-1 - /mnt/slackware-2 - -then the command - - jail-commit - -will update both "slackware-1" and "slackware-2" templates according, respectivelly, the contents of -/mnt/slackware-1 and /mnt/slackware-2. If you also have a template called "main", then jail-commit -will sync the contents of your root system with that template. - -You can even add the following line at root's crontab - - 20 4 * * * jail-commit - -so all your templates get updated everyday. If your system is configured to send emails, then crontab's -jail-commit output you give a summary of yesterday changes your system suffered, both config file changes -and package additions and removals. - -Restoring changes in a jail ---------------------------- - -The opposite operation of jail-commit also is possible: suppose you edited some config files in your system but -suddenly wants to go back and copy all config files from a template to your jail. To do that, just use the command - - jail-update /mnt/hda2 my-slackware - -Storing templates inside a Subversion repository ------------------------------------------------- - -In order to increase once more the control and flexibility of template contents, simplepkg can also handle templates -inside a subversion repository. To do that, edit first the config gile /etc/simplepkg/simplepkg.conf and set the -parameter TEMPLATES_UNDER_SVN to "yes". - -Then, create a fresh subversion repository to keep your templates with a command like that: - - svnadmin create /var/svn/simplepkg --fs-type fsfs - -Then, you just need to import your templates with - - templatepkg -e file:///var/svn/simplepkg - -From now jail-commit will commit automatically any template changes to the svn repository. If, in the other hand, -you wish to grab the changes from the svn repository to your local copy, use - - templatepkg -s - -In case you want to import a template folder from an existing repository, use - - templatepkg -i file:///var/svn/simplepkg - -where file:///var/svn/simplepkg is the repository path. - -Upgrading jails ---------------- - -Jail and installed system upgrading is done through simplaret and also supports /etc/simplepkg/jailist file. -For more info on how it works, take a look at simplaret own documentation. - -Different archs and versions ----------------------------- - -Simplepkg was idealized to permit a template to create jails from any architecture and version -of a slackware-like system. Upgrading tasks also are unified. This feature just works if you -use simplaret and not swaret as the package retrieval tool. - -As another example, to create an slack 10.1 installation (assuming your /etc/simplepkg/repos.conf with -the right configuration), just type - - VERSION=10.1 mkjail my-jail server-template - -Different archs can be used too. If you have a x86_64 system and wants to install a slack 10.2 -in a partition, try something like - - ARCH=i386 VERSION=10.2 ROOT=/mnt mkjail hda2 my-slackware - -Note that the templates are arch and version independent, as they just contain package names, -configuration files and scripts. For this reason, the commands templatepkg, metapkg, lspkg and -jail-update can be used normaly. - -Creating a package from a template ----------------------------------- - -If, for any reason, you wish to build a package from an existing template, try the command - - templatepkg -p template-name - -Although that should work smoothly, its not the recommended behaviour, as simplepkg was designed -to deal easily with templates and repositories. - -Building packages ------------------ - -Until now, we just showed simplepkg applications used to manage installations and packages. -But simplepkg can also create packages using createpkg script: it downloads, builds and -packages software that has an available script from a SlackBuild in a repository, working -like a slackware ports system. - -Createpkg works with any SlackBuild repository but works better and is well integrated if -they are compliant with the standards from - - http://slack.sarava.org/wiki/Main/SlackBuilds - -Specifically, createpkg was built to use slackbuilds from http://slack.sarava.org/slackbuilds -through a subversion repository. - -To fetch all scripts from slack.sarava.org, type - - createpkg --sync - -Then, you can list all available script using - - createpkg --list - -To search for a script, use something like - - createpkg --search latex2html - -This searches for a SlackBuild for the program "latex2html". If you want to build that package, -just type - - createpkg latex2html - -The resulting package should be available at /tmp or at the folder specified by the environment -variable $REPOS. To create and install the package, type - - createpkg --install latex2html - -If the package has dependencies listed in a slack-required file that aren't installed in the -system, then createpkg will try to process then before the desired package's SlackBuild: if -the dependencies aren't available in the SlackBuild tree, then createpkg will call simplaret -and try to install the package from a binary repository. If you want to avoid createpkg's -dependency checking, just use it with the flag --no-deps. - -For more information about createpkg, type - - createpkg --help - -or take a look at http://slack.sarava.org/wiki/Main/SlackBuilds. - -Auxiliar applications ---------------------- - -Simplepkg comes also with the following tools: - - - lspkg: show installed packages and its contents - - rebuildpkg: rebuild a package based on its /var/log/packages entry - - repos: creates and manages binary repositories - - mkbuild: app to build slackware build scripts - -The command lspkg is used to show installed packages. Also, Simplepkg comes with an additional helper -tool that recover installed packages which the original .tgz file was lost. The command rebuildpkg -rebuilds a package from their entry in /var/log/packages. As an example, - - rebuildpkg coreutils - -rebuilds the coreutils package using the files, scripts and metainformations stored in -/var/log/packages/ and /var/log/scripts/. - -For their time, scripts repos and mkbuild are used, respectivelly, to create and manage binary repositories -and to create SlackBuild scripts. - -Configuration parameters ------------------------- - -Simplepkg's config file is /etc/simplepkg/simplepkg.conf and it keeps parameters used by all scripts. -In this section, we won't cover any parameter that's just used by simplaret, whose settings are covered -in its own documentation. - - - JAIL_ROOT: Where jails are placed by mkjail. Default: "/vservers". - - - ADD_TO_JAIL_LIST: Wheter mkjial should add new jails to /etc/simplepkg/jailist. Default is "1" (enabled). - - - TEMPLATES_UNDER_SVN: Set to yes if your templates will be placed in a subversion repository. Default - is "no" (disabled). - - - TEMPLATE_FOLDER: Where your templates will be located. Default is "/etc/simplepkg/templates" and - dont change it except you know what you're doing. - - - TEMPLATE_STORAGE_STYLE: This variable controls in which folder / subfolder your templates will - be stored. Default value is "own-folder" and you'll just need to change that if you're storing - your templates using an old simplepkg format and wants to keep compatibilty. - -Its important to note that all boolean parameters in the config file can be set either to "1" or "yes" -to enable and "0" or "no" to disable. - -Additional information ----------------------- - -Simplepkg was written by Silvio Rhatto (rhatto at riseup.net) and is released under GPL license. The code -can be obtained from the subversion repository: - - svn checkout svn://slack.sarava.org/simplepkg - -Simplepkg's wiki is http://slack.sarava.org/wiki/Main/SimplePKG and its mailing list address is -http://listas.sarava.org/wws/info/slack. - |