Debian GNU\Linux: работа над ошибками

test

В здоровом теле, здоровый дух. Как-то так и с компьютерами и софтом.

Итак, решил я прошерстить свою систему на предмет возникающих ошибок и разобраться хотя бы с частью из них. Для того чтобы увидеть какие ошибки сыпятся можно смотреть логи, а можно в дополнение ко всему запускать софт из терминала, как то делаю я:
#chromium&


При этом весь поток всякой чепухи будет литься в консоль. Можно сделать перенаправление вывода в файл в виде:
#chromium >/tmp/chomium.log&


Смотрим.

Ошибка 1.

Fontconfig error: Cannot load default config file


Лечение из гугла:
#ln -sf /etc/fonts /usr/local/etc/fonts
Создали симлинк на папку которую программулина не находит.

Так же на всякий случай перегенерируем кеш шрифтов:
#dpkg-reconfigure fontconfig

Ошибка 2.

open("/usr/lib/locale/ru_RU.UTF-8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/ru_RU.utf8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = 3


Увидеть есть ли такая ошибка можно даже простой командой:
#strace uname


На всякий случай убедимся что у нас выбраны нужные локали:
#dpkg-reconfigure locales


И генерируем сами локали:
# locale-gen
Generating locales (this might take a while)...
  en_GB.UTF-8... done
  ru_RU.ISO-8859-5... done
  ru_RU.CP1251... done
  ru_RU.KOI8-R... done
  ru_RU.UTF-8... done
  ru_UA.KOI8-U... done
  ru_UA.UTF-8... done
Generation complete.


Повторно запускаем команду:
#strace uname
И видим что проблема исчезла.

Ошибка 3

access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)


Его я поймал все на том же примере:
#strace uname


На самом деле это может относиться и к любой другой библиотеке. Будем проводить расследование:
#apt-get install apt-file
#apt-file update


Ждем пока обновиться и ищем файл:
#apt-file find nohwcap     
eglibc-source: /usr/src/glibc/debian/script.in/nohwcap.sh
glibc-source: /usr/src/glibc/debian/script.in/nohwcap.sh


Как видим, файл относиться к glibc. Баг этот ведет начало с 2007 года или даже раньше.
Немного покопав дальше встречаем сообщение что это совсем не баг, а фича.
Сообщение говорит нам что при присутствии этой библиотеки линковщик будет подгружать не оптимизированную версию библиотеки, даже если будут оптимизированные для CPU версии.

Будем считать что вопрос решен.

Ошибка 4.

access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)


Похожа на предыдущую. Но будем копать. Opennet нам говорит о том что:
  • /lib/ld.so - динамический связыватель/загрузчик для формата a.out
  • /lib/ld-linux.so. - динамический связыватель/загрузчик для формата ELF
  • /etc/ld.so.cache - Файл, содержащий скомпилированный список каталогов, в которых производится поиск библиотек и сортированный список библиотек-кандидатов.
  • /etc/ld.so.preload - Файл, содержащий список разделённых пробелами динамических ELF библиотек, которые будут загружены перед программой.


Не знаю будет ли правильно ли просто создать этот файл, но файл создадим:
#touch /etc/ld.so.preload


Ошибку это убрало.
access("/etc/ld.so.preload", R_OK)      = 0
Повлияло ли как-то на preload не понятно. Но судя по strace preload никак в худшую сторону не повлиял. Будем считать что еще одну ошибку убрали.




Думаю на сегодня работы над ошибками хватит. Остальными займемся в одном из следующих материалов. Надеюсь кому-то это все помогло.
Категория: 
Share/Save

Делитесь с друзьями в социальных сетях! Оставляйте комментарии!

Share/Save

Это Вам так же может быть интересно!