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
126
|
# 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 worked but I'm no longer maintaining it, so you may wish to bump version
numbers etc.
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
|