TeX Live 2008 w Gentoo
1.
Odinstalowanie
Wstęp
W poniższym akapicie zostało założone, że użytkownik posiada zainstalowany
pakiet >=app-text/tetex-3 . Opis odnosi się również do osób
posiadających app-text/texlive-2005. W idealnym świecie powinno być to
tak proste jak zwyczajne odinstalowanie pakietu, ale, na nieszczęście, nie jest.
Zapisywanie starej konfiguracji
Jeśli użytkownik zmodyfikował konfigurację tetexa poprzez edycję plików w
/etc/texmf, to powinny one zostać gdzieś zapisane.
Listing 1.1: Zapisywanie starych plików konfiguracyjnych |
$ cp -rf /etc/texmf ~/tetex-texmf
|
Usuwanie tetexa
Teraz możliwe jest bezpieczne usunięcie pakietu tetex:
Listing 1.2: Usuwanie tetexa |
# emerge -C tetex
|
Zostały zgłoszone dziwne błędy pojawiające się w przypadku, gdy w
/etc/texmf pozostały osierocone pliki konfiguracyjne. W celu
przeprowadzenia bezpiecznej i czystej instalacji, zaleca się zatem usunięcie
pliku /etc/texmf/texmf.d/00texmf.cnf:
Listing 1.3: Usuwanie /etc/texmf |
# rm /etc/texmf/texmf.d/00texmf.cnf
|
Uwaga:
Jeśli stare pliki konfiguracyjne zostały zapisane w bezpiecznym miejscu,
użytkownik nie straci swoich ustawień.
|
Z powodu, że tetex korzystający z texlinks jest poza zasięgiem
menadżera pakietów, zwykłe odinstalowanie pakietu pozostawi po sobie osierocone
dowiązania symboliczne.
Listing 1.4: Osierocone dowiązanie tetexa |
$ ls -l /usr/bin/pdftex
lrwxrwxrwx 1 root root 7 2007-07-09 07:34 /usr/bin/pdftex -> pdfetex
|
Oczywiście pdfetex został usunięty wraz z pakietem tetex, więc dowiązanie
do tego pliku jest martwy. Może on zostać bezpiecznie usunięty. Polecenie
find może pomóc w odnalezieniu martwych dowiązań, potrafi nawet je
interaktywnie usunąć.
Listing 1.5: Usuwanie martwych dowiązań |
# find /usr/bin -type l ! -xtype f ! -xtype d -ok rm -f {} \;
< rm ... /usr/bin/pdflatex > ? y
< rm ... /usr/bin/amstex > ? y
< rm ... /usr/bin/pdftex > ? y
< rm ... /usr/bin/eplain > ? y
< rm ... /usr/bin/jadetex > ? y
< rm ... /usr/bin/lambda > ? y
< rm ... /usr/bin/pdfamstex > ? y
< rm ... /usr/bin/elatex > ? y
< rm ... /usr/bin/lamed > ? y
< rm ... /usr/bin/pdfjadetex > ? y
< rm ... /usr/bin/latex > ? y
|
Są to pliki pozostałe po starej instalacji dystrybucji tetex.
Poza zasięgiem menadżera pakietów, tetex korzystał również z
fmutil do generowania plików formatów. W TeX Live 2008 pliki te
budowane są podczas kompilacji pakietów, które to pliki formatów zostaną
zainstalowane w /var/lib/texmf. Oznacza to, że koniecznym jest
sprawdzenie, czy nie pozostały tam osierocone pliki formatów"
Listing 1.6: Usuwanie osieroconych plików formatów |
# rm -rf /var/lib/texmf/web2c
|
2.
Instalowanie TeX Live 2008
Po przejściu wymienionych wyżej kroków instalacja TeX Live 2008 powinna
być bezproblemowa.
Listing 2.1: Instalacja TeX Live 2008 |
# emerge texlive
|
W teorii powinno pójść gładko i wszystko powinno się zainstalować poprawnie. W
którymś momencie instalacji użytkownik może chcieć zmienić flagi USE, by
zainstalować dodatkowe pakiety TeX-a, ale można to zrobić później.
app-text/texlive jest tylko meta-ebuildem, który pociąga za sobą
instalację normalnych pakietów w zależności od ustawionych flag USE.
Niemniej jednak, możliwe są problemy z zależnościami, błędy podczas instalacji
pakietów i tym podobne. W takim przypadku należy zgłosić błąd na
https://bugs.gentoo.org. Podczas zgłaszania błędu, należy załączyć
przynajmniej wynik polecenia texconfig conf (ze względu na to, że
niektóre zmienne środowiskowe mogą być istotne, uruchomionego przez tego samego
użytkownika, któremu nie udało się zainstalować pakietu). Wynik tego polecenia z
zasady będzie wymagany.
3.
Konfiguracja
Wstęp
tetex-3 i TeX Live w Gentoo posiadają trzy podstawowe pliki
konfiguracyjne podzielone i zarządzane przez texmf-update. Te pliki to:
texmf.cnf, fmtutil.cnf, updmap.cfg i
znajdują się w /etc/texmf/web2c. Nie powinno się modyfikować tych
plików ręcznie, ponieważ wszystkie dokonane zmiany zostaną stracone podczas
kolejnego uruchomienia texmf-update.
texmf.cnf
Plik texmf.cnf jest głównym plikiem konfiguracyjnym dla
zainstalowanego TeX-a. Zawiera w sobie różne zmienne definicje, z których
korzysta mnóstwo programów.
Plik texmf.cnf jest efektem połączenia plików zawartych w
/etc/texmf/texmf.d. By zmienić środowisko konfiguracji TeX-a,
należy modyfikować pliki znajdujące się w wyżej wymienionej lokacji. W czasie
gdy powstawał ten tekst, ebuild Gentoo TeX Live instalował tam sześć
plików.
Listing 3.1: Pliki zainstalowane w texmf.d |
00header.cnf
05searchpaths.cnf
10standardpaths.cnf
15options.cnf
20sizes.cnf
25misc.cnf
|
Jest to wynik podziału odpowiednich sekcji nieznacznie zmodyfikowanego pliku
texmf.cnf z DVD TeX Live 2008.
Pliki 00header.cnf, 05searchpaths.cnf,
10standardpaths.cnf i 25misc.cnf nie powinny być
modyfikowane. Jeśli domyślne ustawienia powinny zostać zmienione, należy zgłosić
błąd.
Ostrzeżenie:
Ebuildy TeX Live nie sprawdzają czy zostały zmienione ścieżki w
wymienionych plikach, więc jeśli zostały zmienione przez użytkownika, powinien
on mieć pewność co robi.
|
Pliki 15options.cnf i 20sizes.cnf mogą być ostrożnie
modyfikowane. Komentarze zawarte w wymienionych plikach powinny wyjaśniać co
oznaczają konkretne opcje. Na przykład, w 20sizes.cnf jest
możliwość zwiększenia pamięci TeX-a, na wypadek kompilacji zbyt obszernego
dokumentu i błędów TeX capacity exceeded, sorry.
Jeśli użytkownik życzy sobie, by zainstalować nieco dodatków w pliku
texmf.cnf, może stworzyć nowy plik w
/etc/texmf/texmf.d, nazwany, dla przykładu,
99myadditions.cnf. Ważne, by nie nadawać wyższego priorytetu
stworzonemu przez siebie plikowi niż mają główne pliki konfiguracyjne. Własne
pliki powinny mieć numer wyższy niż 25.
Pakiety, które potrzebują dodać coś do pliku texmf.cnf traktowane
są w ten sam sposób. Powinny więc instalować się do pliku texmf.d.
Listing 3.2: Przykładowy kod do zainstalowania pliku texmf.d |
insinto /etc/texmf/texmf.d
doins 40mytexmfadditions.cnf
|
updmap.cfg
Plik updmap.cfg jest plikiem konfiguracyjnym używanym przez
updmap (i updmap-sys), w przypadku gdy nie określono innego pliku.
Odpowiada on za wskazanie różnym sterownikom wyjścia TeX-a map czcionek do
zaktualizowania.
Plik updmap.cfg w /etc/texmf/web2c jest efektem
połączenia plików w /etc/texmf/updmap.d. Pierwszy plik,
00updmap.cfg instalowany przez app-text/texlive-core jest
rezultatem uruchomienia updmap --syncwithtrees na drzewie texmf,
które instaluje (właściwie jest to imitacja tego co zrobiłoby polecenie
updmap --syncwithtrees, ale to jedynie techniczny szczegół).
Różne ebuildy TeX Live podczas instalacji czcionek dodają pliki do
katalogu /etc/texmf/updmap.d. Gdy konieczna jest edycja tych plików
w celu wyłączenia aktualizacji niektórych czcionek, lepszym rozwiązaniem jest po
prostu usunięcie odpowiedniego pakietu.
Jeśli osobny ebuild próbuje dodać nowe mapy czcionek, powinien on zainstalować
je w /etc/texmf/updmap.d i pozwolić, by zarządzał nimi
texmf-update.
Ostrzeżenie:
Czasami można zobaczyć w niektórych ebuildach czy instrukcjach instalacji
dodatkowych pakietów zawierających czcionki updmap-sys --enable
Map=mymap.map. O ile możliwe jest działanie tego polecenia za pierwszym
razem, wszelkie poczynione zmiany zostaną cofnięte podczas kolejnego
uruchomiania texmf-update.
|
Dobrym pomysłem na poradzenie sobie z tym jest stworzenie pliku, który zostanie
zainstalowany w /etc/texmf/updmap.d oraz instalacja go w
dystrybucji TeX-a, która wspiera narzędzie texmf-update:
Listing 3.3: Jak włączyć mapę czcionki |
inherit latex-package
...
src_install() {
...
if latex-package_has_tetex_3; then
insinto /etc/texmf/updmap.d
doins myfontmapconfig.cfg
fi
...
}
...
pkg_postinst() {
latex-package_pkg_postinst
latex-package_has_tetex_3 || updmap-sys --enable Map=mymap.map
}
pkg_postrm() {
latex-package_pkg_postinst
latex-package_has_tetex_3 || updmap-sys --disable Map=mymap.map
}
|
Pliki znajdujące się w /etc/texmf/updmap.d powinny uznawać składnię
updmap:
Listing 3.4: Fragment updmap.cfg wyjaśniający składnię |
Możliwe są dwa wpisy: Map i MixedMap. Obydwa mają jeden dodatkowy argument:
nazwę pliku mapy. Linie MixedMap ("mixed" oznacza, że czcionka jest osiągalna
jako bitmapa lub obrys) nie będą używane w domyślnej mapie dvips jeśli
dvipsPreferOutline jest wyłączony. Nieaktywne pliki Map powinny być zaznaczone
jako "#! " (bez nawiasów), a nie tylko przez #.
|
fmtutil.cnf
Plik fmtutil.cnf zawiera informację o tym, jak zbudować plik
formatu i jak nim zarządzać.
Plik fmtutil.cnf jest efektem połączenia plików znajdujących się w
/etc/texmf/fmtutil.d. Różne ebuildy TeX Live instalują tam
pliki. Pliki te dodają wsparcie dla plików formatu i tworzą dowiązanie
symboliczne do odpowiadającego im silnika.
Listing 3.5: Framgent strony man fmtutil.cnf(5) wyjaśniający składnię |
Plik fmtutil.cnf zawiera konfigurację dla fmtutil(8). Każda linia zawiera nazwę
formatu (na przykład, "tex", "latex", "omega"), nazwę silnika używanego przez
dany format (na przykład, "tex", "latex", "omega"), plik wzoru (na przykład,
language.dat, language.def) i inne argumenty (nazwa pliku .ini).
Pola są oddzielone spacją, a pełne linie mogą zostać zakomentowane za pomocą
znaku "#". Pole "plik wzoru" nie może zostać użyte do zdefiniowania pliku, który
ma zostać użyty podczas budowania formatu. Przekazuje on fmtutil, który plik
jest odczytywany podczas procesu budowania i ma efekt podczas użycia opcji
--showhyphen i --byhyphen. Jeśli format nie posiada informacji jak dostosować
dzielenie wyrazów, "-" może zostać użyty do ich wskazania.
|
Ebuildy TeX Live, które instalują plik fmtutil.d, instalują
odpowiadające im pliki formatów w /var/lib/texmf/web2c i tworzą
dowiązanie od formatu do silnika.
Warto wspomnieć, że gdy zostaną dodane pliki wspierające język,
texmf-update zajmuje się dodaniem ich do pliku language.dat
i zregenerowaniem plików formatów, tak by te wspierały nowo zainstalowany język.
Uaktualnianie konfiguracji
Teraz, gdy proces konfiguracji TeX Live jest jasny, użytkownik powinien
móc przenieść zmiany dokonane na starej dystrybucji TeX-a do konfiguracji
TeX Live.
4.
Powszechne błędy
Wstęp
W poniższym rozdziale przedstawiony zostanie skrót najbardziej powszechnych
błędów i wyjaśnienie co poszło nie tak.
Format został zapisany w (pdf)etex
Czasami podczas instalacji niektórych pakietów wymagających latex, można spotkać
się z błędem:
Listing 4.1: Format został zapisany przez pdfetex |
---! //var/lib/texmf/web2c/latex.fmt was written by pdfetex
|
Powyższy błąd to wynik tego, że po starej instalacji dystrybucji etex
pozostały niektóre pliki wymagane przez nią. W większości przypadków oznacza to,
że użytkownik nie wykonał wszystkich kroków opisanych w niniejszym dokumencie,
ze szczególnym naciskiem na rozdział Odinstalowywanie.
Wciąż możliwe jest szybkie naprawienie tego bez konieczności ponownej instalacji
czegokolwiek. Należy uruchomić z uprawnieniami roota:
Listing 4.2: Usuwanie starych formatów |
# rm -rf /var/lib/texmf/web2c
# texmf-update
|
Katalog formatów nie istnieje
Podczas instalacji texlive-latex, możliwe jest wystąpienie błędu:
Listing 4.3: Katalog formatów nie istnieje |
fmtutil: format directory
`/var/tmp/portage/dev-texlive/texlive-latex-2008/work/texmf-var/web2c' does not
exist.
|
Najbardziej prawdopodobną przyczyną wystąpienia tego błędu jest zła
konfiguracja. Należy spróbować uruchomić poniższe polecenie i uzyskać rezultaty
identyczne z wymienionymi:
Listing 4.4: Definicja TEXMFMAIN |
$ kpsewhich --var-value=TEXMFMAIN
/usr/share/texmf
|
Bardzo ważne jest od kiedy fmtutil szuka mktexdir w tej lokacji.
Jeśli użytkownik osiągnie inny rezultat, wtedy fmtutil nie znajdzie
mktexdir i w efekcie nie uda mu się utworzyć katalogu, w którym
tymczasowo przechowuje skompilowane formaty.
Nie istnieje magiczne polecenie zdolne to naprawić. Należy zatem sprawdzić czy
konfiguracja jest poprawna i czy w /etc/texmf/texmf.d nie pozostały
osierocone pliki. Najczęściej jest to spowodowane istnieniem starego
00texmf.cnf i w efekcie niepoprawnymi ustawieniami dla pliku
texmf.cnf. Należy cofnąć się do Rozdziału
"Odinstalowywanie" i pamiętać, że po usunięciu lub modyfikacji pliku w
katalogu /etc/texmf/*.d trzeba uruchomić polecenie
texmf-update, aby zachować zmiany na aktualnym koncie.
Brakujące pliki .tex
Podczas instalacji texlive-latex (albo dowolnego formatu posiadającego
wsparcie dla podziału wyrazów babel, można spotkać się z błędem:
Listing 4.5: brakujący bghyphen.tex |
===========================================
Local configuration file hyphen.cfg used
===========================================
(/var/tmp/portage/dev-texlive/texlive-latex-2008/work/texmf-dist/tex/generic/ba
bel/hyphen.cfg (/usr/share/texmf/tex/generic/hyphen/hyphen.tex)
(/usr/share/texmf/tex/generic/hyphen/ushyphmax.tex)
(/usr/share/texmf/tex/generic/hyphen/dumyhyph.tex)
(/usr/share/texmf/tex/generic/hyphen/zerohyph.tex)
(/usr/share/texmf/tex/generic/hyphen/zerohyph.tex)
(/usr/share/texmf-dist/tex/generic/xu-hyphen/xu-bahyph.tex
(/usr/share/texmf/tex/generic/hyphen/bahyph.tex))
(/usr/share/texmf-dist/tex/generic/xu-hyphen/xu-bghyphen.tex
! I can't find file `bghyphen.tex'.
l.10 \input bghyphen.tex
Please type another input file name:
! Emergency stop.
l.10 \input bghyphen.tex
No pages of output.
Transcript written on latex.log.
Error: `pdftex -ini -jobname=latex -progname=latex
-translate-file=cp227.tcx *latex.ini' failed
|
W takim przypadku należy sprawdzić, który plik language.dat jest
używany:
Listing 4.6: odnalezienie language.dat |
$ kpsewhich language.dat
/usr/share/texmf/tex/generic/config/language.dat
|
Plik ten jest automatycznie wygenerowany przez texmf-update, jako efekt
połączenia plików language.*.dat znajdujących się w katalogu, w
którym znajduje się również language.us (dla TeX Live 2008 pliki
language.*.dat pobierane są z katalogu
/etc/texmf/language.dat.d/). Powinien to być katalog
/usr/share/texmf/tex/generic/config/. Należy więc sprawdzić, czy
nie znajdują się tam inne pliki language.*.dat, niż te
zainstalowane przez ebuildy dev-texlive/texlive-lang*. Każdy plik
znajdujący się w tym katalogu oznacza, że użytkownik chce włączyć wsparcie
podziału wyrazów dla konkretnego języka. Jeśli nie posiada się plików
wspierających podział wyrazów spowoduje to, że pliki formatów zdolne do użycia
dodatkowego podziału wyrazów wsparcia nie zbudują się.
Materiał udostępniany na podstawie licencji Creative Commons -
Attribution / Share Alike.
|