Tutorial: debug language installation
This commit is contained in:
parent
2aac76d168
commit
c42dc69d58
|
@ -0,0 +1,81 @@
|
||||||
|
# Tutorial: debug language installation
|
||||||
|
|
||||||
|
Except for the simplest cases, it's often helpful to debug lanugage
|
||||||
|
installation interactively. Open a new tab in the admin shell
|
||||||
|
(`control-b c`) and start the packaging image:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ make shell I=packaging
|
||||||
|
```
|
||||||
|
|
||||||
|
You'll probably want another instance of tmux:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ make tmux
|
||||||
|
```
|
||||||
|
|
||||||
|
Now you should have at least three tabs in the top-level tmux: one
|
||||||
|
with the admin shell, one with the runtime shell, and one with the
|
||||||
|
packaging shell.
|
||||||
|
|
||||||
|
## Targeted debugging commands
|
||||||
|
|
||||||
|
Switch to the packaging shell and delete any leftover artifacts from
|
||||||
|
the previous build:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ make pkg-clean T=lang L=mylanguage
|
||||||
|
```
|
||||||
|
|
||||||
|
Then start a shell in the same context as the `install` scripts would
|
||||||
|
be run.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ make pkg-debug T=lang L=mylanguage
|
||||||
|
```
|
||||||
|
|
||||||
|
Now you can run installation commands manually to make sure they're
|
||||||
|
working. Normally the generated build script will be run; you can see
|
||||||
|
it by running
|
||||||
|
|
||||||
|
```
|
||||||
|
$ make script T=lang L=mylanguage
|
||||||
|
```
|
||||||
|
|
||||||
|
and checking `build/lang/<mylanguage>/build.bash`. You can also run
|
||||||
|
that script in the appropriate context before entering your
|
||||||
|
`pkg-debug` session:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ make pkg-build T=lang L=mylanguage
|
||||||
|
```
|
||||||
|
|
||||||
|
After you're satisfied with the layout of files you've put into
|
||||||
|
`${pkg}` and want to try installing the resulting package, start by
|
||||||
|
building the `.deb`:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ make pkg-deb T=lang L=mylanguage
|
||||||
|
```
|
||||||
|
|
||||||
|
Then switch to the runtime shell. If you still only have one tab open
|
||||||
|
inside the nested tmux session, open a new one (`control-b control-b
|
||||||
|
c`). You can install the `.deb`:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ make install T=lang L=mylanguage
|
||||||
|
```
|
||||||
|
|
||||||
|
At this point your language should be runnable so you can test it out.
|
||||||
|
It's best to test inside an isolated sandbox with the same set of
|
||||||
|
environment variables as will appear on Riju, though; you can start
|
||||||
|
such a shell as follows:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ make sandbox L=mylanguage
|
||||||
|
```
|
||||||
|
|
||||||
|
You may find that the language fails to run as expected due to
|
||||||
|
packaging errors. If so, you can return to the packaging shell and
|
||||||
|
make adjustments inside `pkg-debug` before rebuilding and reinstalling
|
||||||
|
the package.
|
Loading…
Reference in New Issue