| - |
pkgng - New version of FreeBSD's pkg_install
|
| - |
|
| - |
Table of Contents:
|
| - |
|
| - |
1. Available commands of pkgng
|
| - |
2. Available subcommands of pkgng
|
| - |
3. General behaviour
|
| - |
4. New scripts
|
| - |
4.1. During new install
|
| - |
4.2. During package deletion
|
| - |
4.3. During upgrade of a package
|
| - |
5. Additional resources
|
| - |
|
| - |
|
| - |
1. Available commands of pkgng:
|
| - |
-------------------------------
|
| - |
|
| - |
- pkg:
|
| - |
|
| - |
- One command to rule them all (see section 2)
|
| - |
|
| - |
- pkg_*:
|
| - |
|
| - |
- These will be shell scripts, which goal is to be 100% compatible with
|
| - |
pkg_install. They will call `pkg' with the appropriate options (not sure
|
| - |
it will be really done in the end).
|
| - |
|
| - |
2. Available subcommands of pkgng:
|
| - |
----------------------------------
|
| - |
|
| - |
- add:
|
| - |
|
| - |
- Installs a package if a local package is given
|
| - |
- Manages ftp/http downloads of packages through libfetch and
|
| - |
tries to install them.
|
| - |
- In the two previous cases, if a package does not have it's
|
| - |
dependencies installed, `pkgng' will try to fetch/find them in the same
|
| - |
place as the original package was.
|
| - |
- It will manage a completely new repository format.
|
| - |
`pkg add <foo>' will check in the database of the repository for
|
| - |
package <foo> and try to install it as well as it's dependencies.
|
| - |
Dependencies will be computed before beginning the fetch/install
|
| - |
process to ensure that everything will be OK.
|
| - |
|
| - |
- register:
|
| - |
|
| - |
- Take a plist in argument considering the files are already installed
|
| - |
and register the package into the database. Register will display the
|
| - |
package message.
|
| - |
|
| - |
- repo:
|
| - |
|
| - |
- Takes only one argument and generates two database files (maybe more for
|
| - |
the time we will be willing to work with UPDATING and MOVED).
|
| - |
The first repo contains all information about a package, except for
|
| - |
the files (which will be in the second one) + it will compute and
|
| - |
add a sha256 sum for each package.
|
| - |
- The database will be a SQLite file compressed with the xz format.
|
| - |
- The database will be signed so we can trust the sha256 of the
|
| - |
packages, and if a package has the expected hash, it is considered
|
| - |
trusted.
|
| - |
|
| - |
- search:
|
| - |
|
| - |
- Will search the repository catalogue to provide information
|
| - |
to the users.
|
| - |
|
| - |
- info:
|
| - |
|
| - |
- Will provide any information to the users about an installed package
|
| - |
or a package archive.
|
| - |
|
| - |
- create:
|
| - |
|
| - |
- Will create the package in the new format (+MANIFEST) in txz (tar.xz).
|
| - |
- Options for creating tbz, tgz and plain tar will be provided.
|
| - |
- It should be able to create a package for a "fakeroot" directory
|
| - |
taking a plist or a manifest in arguments (the plist is for
|
| - |
compatibility with bsd.ports.mk)
|
| - |
|
| - |
- delete:
|
| - |
|
| - |
- Will delete a package. To be able to remove the empty directories
|
| - |
cleanly it will delete every directory (found in the path of the
|
| - |
files), which are not in the package's manifest.
|
| - |
|
| - |
- upgrade:
|
| - |
|
| - |
- Will examine the repository catalogue to check if there are
|
| - |
any upgrades available and apply them.
|
| - |
|
| - |
- update:
|
| - |
|
| - |
- Will fetch the remote repository SQLite database file.
|
| - |
|
| - |
- lint:
|
| - |
|
| - |
- Will check for the given package and warn the user about possible problems:
|
| - |
* bad prefix
|
| - |
* setuids
|
| - |
* etc
|
| - |
|
| - |
3. General behaviour:
|
| - |
---------------------
|
| - |
|
| - |
The manifest contains compatibility keywords: exec, unexec which will be
|
| - |
executed as they are in pkg_install, but will display a warning to show the user
|
| - |
exec/unexec is deprecated.
|
| - |
|
| - |
If install and deinstall scripts are present they will be executed as they were in
|
| - |
pkg_install, and the user will be warned that they are deprecated.
|
| - |
|
| - |
4. New scripts
|
| - |
----------------------
|
| - |
|
| - |
The new package format will have the following (optional) shell scripts:
|
| - |
|
| - |
4.1. During new install
|
| - |
-----------------------
|
| - |
|
| - |
- pre-install
|
| - |
- post-install
|
| - |
|
| - |
4.2. During package deletion
|
| - |
----------------------------
|
| - |
|
| - |
- pre-uninstall
|
| - |
- post-uninstall
|
| - |
|
| - |
4.3. During upgrade of a package
|
| - |
--------------------------------
|
| - |
|
| - |
- pre-upgrade
|
| - |
- post-upgrade
|
| - |
|
| - |
5. Additional resources
|
| - |
-----------------------
|
| - |
|
| - |
The wiki page where it all started (outdated):
|
| - |
- http://wiki.freebsd.org/Pkg_install2_specs
|
| - |
|