1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
# miktex-kiss-repo
This is a repository which provides all the necessary dependencies to build
the MiKTeX distribution of TeX (other dependencies are in the official repos).
It works, but I intend to try to remove more of the dependencies.
MiKTeX provides a package manager which can install packages as they are needed
at compilation time ("on-the-fly"), which helps to keep the installed size
small(er).
NOTE: TeX Live, another TeX distribution, has also been packaged for KISS.
## NEWS
### MiKTeX 21.6.28
The latest release of MiKTeX uses a C++ class which is not implemented for Linux
(yet). See the issue [here].
**Fixed with latest release (21.7)**
### log4cxx
log4cxx 0.12.0 has been released upstream, including some changes to the version
of C++ being used, and MiKTeX's build is currently incompatible with it (see the
[issue upstream]).
Therefore, log4cxx has not been updated (yet).
**This seems to be fixed now. log4cxx has been updated and it all builds for me.**
### gettext-tiny
This package of MiKTeX now uses [gettext-tiny] instead of gettext. This is much
more lightweight than the GNU version, weighing in at 340 kB compared to 19 MB.
Of course, it is less featureful.
## Installation
To use, clone the repo and add it to `KISS_PATH`, then run:
```
$ cd boost && kiss b
```
This builds the version of boost from this repo, which includes locale support. (Keep
that in mind when a boost update comes along - or put this repo earlier in `KISS_PATH`
than the community repo.
By the way, I really do intend to patch out all the locale requirements from MiKTeX.
One day.
Next,
```
$ kiss b graphite-harfbuzz
```
This will take a moment, then print a message telling you to run
`kiss alternatives`. MiKTeX needs the harfbuzz font libraries to be built with
graphite support, so now run:
```
$ kiss a | grep graphite-harfbuzz | kiss a -
```
to switch the necessary libraries to include graphite support.
Now, you can sit back and run
```
$ kiss b miktex
```
This might take a while.
## Finish setup
After installing, you need to complete the setup.
MiKTeX can be installed either
* for all users on your system, in which case you'll need root privileges;
* or just for your own user.
If installing user-wide, every command must be run as root (ie. use
`sudo`, `doas`, or similar) and with the `--admin` flag.
Otherwise, omit these and run as a normal user. I'm going to give the commands
as to install MiKTeX for the whole system.
```
# mpm --admin --update-db
```
Enable on-the-fly package installation: (this is optional)
```
# initexmf --admin --set-config-value [MPM]AutoInstall=1
# initexmf --admin --update-fndb
```
Create symlinks to executables (such as `pdflatex`):
```
# initexmf --admin --mklinks
```
Install basic packages and fonts to `/usr/local/share`:
```
# mpm --admin --verbose --package-level=basic --upgrade
# initexmf --admin --mkmaps
# initexmf --admin --update-fndb
```
Finally, update the databases (you'll probably have to run these two several times)
```
# mpm --admin --update
$ mpm --update
```
Test compiling a sample document: (this will download some packages
if you enabled on-the-fly package installation)
```
$ pdflatex sample2e
```
## Troubleshooting
If anything fails, it's probably a network error, so try again.
Your first check should be the error logs (MiKTeX will tell you where
to find them).
Check the documentation at <https://miktex.org/howto/build-unx>.
The output of `initexmf --report`, both with and without
root privileges and `--admin`, may be useful.
Feel free to open an issue.
[gettext-tiny]: https://github.com/sabotage-linux/gettext-tiny
[issue upstream]: https://github.com/MiKTeX/miktex/issues/817
[here]: https://github.com/MiKTeX/miktex/issues/860
|