Zepsuta konfiguracja ghostscript

8

Coś poszło nie tak z moją konfiguracją ghostscript, przez co dostaję następujące błędy, na przykład przy użyciu epstopdf


 ./base/gsicc_manage.c:1088: gsicc_open_search(): Could not find default_gray.icc 
| ./base/gsicc_manage.c:1914: gsicc_init_iccmanager(): cannot find default icc profile
  ./base/gsicc_manage.c:1088: gsicc_open_search(): Could not find default_rgb.icc 
| ./base/gsicc_manage.c:1708: gsicc_set_device_profile(): cannot find device profile

**** Unable to open the initial device, quitting.
  ./base/gsicc_manage.c:1088: gsicc_open_search(): Could not find default_gray.icc 
| ./base/gsicc_manage.c:1708: gsicc_set_device_profile(): cannot find device profile
Unrecoverable error: unknownerror in .special_op
  ./base/gsicc_manage.c:1088: gsicc_open_search(): Could not find default_gray.icc 
+ ./base/gsicc_manage.c:2650: gs_setdefaultgrayicc(): cannot find default gray icc profile

Wymyśliłem następujące obejście (wstawione do mojego .bashrc)

alias gs='gs -sICCProfilesDir=/usr/share/color/icc/ghostscript/'<br>
alias epstopdf='epstopdf --gsopt=-sICCProfilesDir=/usr/share/color/icc/ghostscript/' <br>
alias ps2pdf='ps2pdf -sICCProfilesDir=/usr/share/color/icc/ghostscript/'

Nie mogłem jednak znaleźć sposobu na ustawienie tego ustawienia jako „globalnego”. Np. Kiedy powiedzmy, że epstopdf jest wywoływany z matlabu export_fig, daje podobne błędy jak powyżej, chyba że zaimplementuję podobne obejście.

Myślę, że miało to efekt domina polegający na zaprzestaniu prawidłowego działania drukowania w moim systemie.

Ubuntu 16.04  
ghostscript, Version: 9.18~dfsg~0-0ubuntu2.6

Każda pomoc bardzo mile widziana.

James
źródło
Wypełnij SWAG - ale czy próbowałeś ponownie zainstalować libgs9-commonpakiet?
steeldriver,
Zrobiłem to z sudo dpkg --purge --force-depends libgs9-common... sudo apt-get install libgs9-common. Hmm, wydaje się, że to naprawiło, epstopdfale przestało działać obejście gs. Czy powinienem kontynuować i całkowicie wyczyścić libgs9-common (odinstalowywanie zależności), a następnie ponownie zainstalować wszystkie pakiety?
James
Nie wiem . . Spróbowałbym sudo apt install --reinstall libgs9-commonraczej niż niższego poziomu dpkg, ale nie wiem, czy wynik byłby inny. Czy wiesz, skąd /usr/share/color/icc/ghostscript/pochodzą pliki? Nie mogę znaleźć pakietu, który je zapewni (domyślnie profile kolorów wydają się żyć /usr/share/ghostscript/9.18/iccprofiles/)
steeldriver
Ponowna instalacja przez apt była taka sama. Obejście wymagało aktualizacji /usr/share/ghostscript/9.18/iccprofiles/zgodnie z Twoim opisem. Czy są jeszcze jakieś inne winowajcy, które możesz spróbować zainstalować ponownie?
James
Uruchom gs --helpi skopiuj listę Search paths do swojego pytania. Czy zdefiniowano jakieś istotne zmienne środowiskowe ( env | grep GS_)?
steeldriver

Odpowiedzi:

20

Oto, co zadziałało dla mnie:

sudo rmdir /usr/share/ghostscript/9.25/iccprofiles
sudo apt-get install --reinstall libgs9-common

Coś pozostawiło pusty katalog pod adresem /usr/share/ghostscript/9.25/iccprofiles. Wygląda na to, że libgs9-commontworzy dowiązanie symboliczne od /usr/share/ghostscript/9.25/iccprofilesdo /usr/share/color/icc/ghostscript, ale cicho go nie tworzy, jeśli coś już jest w systemie plików.

Ville Laurikari
źródło
6
Pracowałem też dla mnie w 18.04.
kaleissin
1
Niesamowity. Wydrukowałem całkowicie zepsuty na Ubuntu 18.04, a następnie 18.10, a potem zdałem sobie sprawę, że Evince nie może otworzyć plików PS. Twoje rozwiązanie działa idealnie.
Andrea Lazzarotto,
Ville, też dla mnie pracował! Na prawdę bardzo ci dziękuję! Miałem problemy z tym, że kubki-pdf nie drukowały się w ~ / PDF; okazało się, że gs nie działa z kodem 255 (dziękuję Volker za wskazanie tego) i tobie za twój przepis, ponieważ w końcu przywrócił gs ze zepsutego stanu.
Robert