docs: Improve the FAQ
This commit is contained in:
78
docs/faq.md
78
docs/faq.md
@@ -280,6 +280,73 @@ prevent masking an error for a situation when you expected a file to already be
|
|||||||
at that location. It also turns out to simplify the internals significantly, and
|
at that location. It also turns out to simplify the internals significantly, and
|
||||||
remove an ambiguous scenario with the reversible file resource.
|
remove an ambiguous scenario with the reversible file resource.
|
||||||
|
|
||||||
|
### Package resources error with: "The name is not activatable", what's wrong?
|
||||||
|
|
||||||
|
You may see an error like:
|
||||||
|
|
||||||
|
`main: error running auto edges: The name is not activatable`
|
||||||
|
|
||||||
|
This can happen because the mgmt `pkg` resource uses a library and daemon called
|
||||||
|
`PackageKit` to install packages. If it is not installed, then it cannot do its
|
||||||
|
work. On Fedora system you may wish to run `dnf install /usr/bin/pkcon` or on a
|
||||||
|
Debian system you may wish to run `apt install packagekit-tools`.
|
||||||
|
|
||||||
|
PackageKit is excellent because it provides both an API and an event system to
|
||||||
|
watch the package database for changes, and it abstracts away the differences
|
||||||
|
between the various package managers. If you'd prefer to not need to install
|
||||||
|
this tool, then you can contribute a native `pkg:rpm` and `pkg:deb` resource to
|
||||||
|
mgmt!
|
||||||
|
|
||||||
|
### When running mgmt, it says: "module path error: can't find a module path".
|
||||||
|
|
||||||
|
You might get an error along the lines of:
|
||||||
|
|
||||||
|
```
|
||||||
|
could not set scope: import scope `git://github.com/purpleidea/mgmt/modules/some_module_name/` failed: module path error: can't find a module path
|
||||||
|
```
|
||||||
|
|
||||||
|
This usually means that you haven't specified the directory that mgmt should use
|
||||||
|
when looking for modules. This could happen when using mgmt interactively or
|
||||||
|
when it's being run as a service. In such cases you may want the main invocation
|
||||||
|
to look something like:
|
||||||
|
|
||||||
|
```
|
||||||
|
mgmt run lang --module-path '/etc/mgmt/modules/' /etc/mgmt/main.mcl
|
||||||
|
```
|
||||||
|
|
||||||
|
### I get an error: "cannot open shared object file: No such file or directory".
|
||||||
|
|
||||||
|
Mgmt currently uses two libraries that depend on `.so` files being installed on
|
||||||
|
the host. Those are for `augeas` and `libvirt`. If those dependencies are not
|
||||||
|
present, then mgmt will not run. The complete error might look like:
|
||||||
|
|
||||||
|
```
|
||||||
|
mgmt: error while loading shared libraries: libvirt-lxc.so.0: cannot open shared object file: No such file or directory
|
||||||
|
```
|
||||||
|
|
||||||
|
or:
|
||||||
|
|
||||||
|
```
|
||||||
|
mgmt: error while loading shared libraries: libaugeas.so.0: cannot open shared object file: No such file or directory
|
||||||
|
```
|
||||||
|
|
||||||
|
or something similar. There are two solutions to this:
|
||||||
|
|
||||||
|
1. Use a build that doesn't include one or both of those features. You can build
|
||||||
|
that like: `GOTAGS="noaugeas novirt nodocker" make build`.
|
||||||
|
|
||||||
|
2. Install those dependencies. On a Fedora machine you might want to run:
|
||||||
|
|
||||||
|
```
|
||||||
|
dnf install libvirt-devel augeas-devel
|
||||||
|
```
|
||||||
|
|
||||||
|
On a Debian machine you might want to run:
|
||||||
|
|
||||||
|
```
|
||||||
|
apt install libvirt-dev libaugeas-dev
|
||||||
|
```
|
||||||
|
|
||||||
### Why do function names inside of templates include underscores?
|
### Why do function names inside of templates include underscores?
|
||||||
|
|
||||||
The golang template library which we use to implement the template() function
|
The golang template library which we use to implement the template() function
|
||||||
@@ -320,7 +387,7 @@ an instance of mgmt running, or if a related file locking issue occurred. To
|
|||||||
solve this, shutdown and running mgmt process, run `rm mgmt` to remove the file,
|
solve this, shutdown and running mgmt process, run `rm mgmt` to remove the file,
|
||||||
and then get a new one by running `make` again.
|
and then get a new one by running `make` again.
|
||||||
|
|
||||||
### Type unification error: "could not unify types: 2 unconsumed generators".
|
### Type unification error with string interpolation.
|
||||||
|
|
||||||
Look carefully at the following code:
|
Look carefully at the following code:
|
||||||
|
|
||||||
@@ -343,8 +410,13 @@ print "hello" {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Yes we know the compiler gives horrible error messages, and yes we would
|
The first example will usually error with something along the lines of:
|
||||||
absolutely love your help improving this.
|
|
||||||
|
`unify error with: topLevel(func() { <built-in:concat> }): type error: int != str`
|
||||||
|
|
||||||
|
Now you know why this specific case doesn't work! We may reconsider allowing
|
||||||
|
other types to be pulled into interpolation in the future. If you have a good
|
||||||
|
case for this, then let us know.
|
||||||
|
|
||||||
### The run and deploy commands don't parse correctly when used with `--seeds`.
|
### The run and deploy commands don't parse correctly when used with `--seeds`.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user