Значки панели инструментов не могут загружаться при запуске Emacs через xhost из FreeBSD в Ubuntu

Я подключен к компьютеру FreeBSD с помощью ssh [ip] -X , а emacs запускается просто отлично, но это происходит, и все значки – маленькие кусочки бумаги с красными X:

 > emacs (emacs:22812): GdkPixbuf-WARNING **: Bug! loader 'png' didn't set an error on failure (emacs:22812): Gtk-WARNING **: Error loading theme icon 'document-new' for stock: Internal error: Image loader module 'png' failed to complete an operation, but didn't give a reason for the failure (emacs:22812): GdkPixbuf-WARNING **: Bug! loader 'png' didn't set an error on failure (emacs:22812): Gtk-WARNING **: Error loading theme icon 'document-open' for stock: Internal error: Image loader module 'png' failed to complete an operation, but didn't give a reason for the failure (emacs:22812): GdkPixbuf-WARNING **: Bug! loader 'png' didn't set an error on failure (emacs:22812): GdkPixbuf-WARNING **: Bug! loader 'png' didn't set an error on failure (emacs:22812): Gtk-WARNING **: Error loading theme icon 'image-missing' for stock: Internal error: Image loader module 'png' failed to complete an operation, but didn't give a reason for the failure (emacs:22812): GdkPixbuf-WARNING **: Bug! loader 'png' didn't set an error on failure (emacs:22812): Gtk-WARNING **: Error loading theme icon 'window-close' for stock: Internal error: Image loader module 'png' failed to complete an operation, but didn't give a reason for the failure (emacs:22812): GdkPixbuf-WARNING **: Bug! loader 'png' didn't set an error on failure (emacs:22812): Gtk-WARNING **: Error loading theme icon 'document-save' for stock: Internal error: Image loader module 'png' failed to complete an operation, but didn't give a reason for the failure (emacs:22812): GdkPixbuf-WARNING **: Bug! loader 'png' didn't set an error on failure (emacs:22812): Gtk-WARNING **: Error loading theme icon 'edit-undo' for stock: Internal error: Image loader module 'png' failed to complete an operation, but didn't give a reason for the failure (emacs:22812): GdkPixbuf-WARNING **: Bug! loader 'png' didn't set an error on failure (emacs:22812): Gtk-WARNING **: Error loading theme icon 'edit-cut' for stock: Internal error: Image loader module 'png' failed to complete an operation, but didn't give a reason for the failure (emacs:22812): GdkPixbuf-WARNING **: Bug! loader 'png' didn't set an error on failure (emacs:22812): Gtk-WARNING **: Error loading theme icon 'edit-copy' for stock: Internal error: Image loader module 'png' failed to complete an operation, but didn't give a reason for the failure (emacs:22812): GdkPixbuf-WARNING **: Bug! loader 'png' didn't set an error on failure (emacs:22812): Gtk-WARNING **: Error loading theme icon 'edit-paste' for stock: Internal error: Image loader module 'png' failed to complete an operation, but didn't give a reason for the failure (emacs:22812): GdkPixbuf-WARNING **: Bug! loader 'png' didn't set an error on failure (emacs:22812): Gtk-WARNING **: Error loading theme icon 'edit-find' for stock: Internal error: Image loader module 'png' failed to complete an operation, but didn't give a reason for the failure 

Кто-нибудь знает, почему это происходит? GVIM загружается просто отлично.

Возможно, может быть вопрос конфигурации GTK на машине, где работает Emacs? Кто-то на форумах Qt Center обнаружил то, что, похоже, представило разрешение для аналогичного предупреждения из библиотеки GdkPixbuf, когда оно связано с набором инструментов Qt widget [ Qt Center ]

Кажется, что статья рекомендует запускать, как пользователь root на машине, где работает Emacs:

 update-mime /usr/share/mime/ update-mime-database /usr/share/mime/ gtk-update-icon-cache /usr/share/icons/<ThemeName> 

Лично я хотел бы предположить, что эти команды оболочки могут запускаться во время сценариев после установки после установки на Ubuntu. Возможно, это уже особенность. В командной gtk-update-icon-cache команда руководства на Ubuntu.

В качестве альтернативы, возможно ли создать Emacs без GTK? В главном руководстве Debian содержится документация о файле debian/rules и команде debuild Debian при создании пакетов Debian из исходного кода. Исходные пакеты в дистрибутиве типа Debian можно получить с помощью apt-get [ BuildingTutorial ]. В Emacs Wiki имеется документация о создании Emacs из исходного кода [ BuildingEmacs ]

Я предполагаю, что у вас нет PNG для этих значков, установленных в вашей системе FreeBSD. В частности, те, что у меня есть в моей системе FreeBSD 10 (которая отлично работает с ssh -X):

 /usr/local/share/icons/gnome/24x24/actions/document-new.png /usr/local/share/icons/gnome/24x24/actions/document-open.png /usr/local/share/icons/gnome/24x24/actions/document-save.png /usr/local/share/icons/gnome/24x24/actions/edit-copy.png /usr/local/share/icons/gnome/24x24/actions/edit-cut.png /usr/local/share/icons/gnome/24x24/actions/edit-find.png /usr/local/share/icons/gnome/24x24/actions/edit-paste.png /usr/local/share/icons/gnome/24x24/actions/edit-undo.png /usr/local/share/icons/gnome/24x24/actions/window-close.png /usr/local/share/icons/gnome/24x24/apps/system-file-manager.png 

Исходный путь может быть другим, поэтому я бы сделал locate в базовом имени, например, locate edit-find.png .

Кроме того, сделайте truss -o /tmp/truss.out emacs и бросьте, как только вы это поймете. Затем выполните:

 grep 'png"' /tmp/truss.out 

и он должен показать вам, находите ли вы png или нет. Если нет, эти файлы принадлежат gnome-icon-theme-3.6.2, поэтому установите, возможно, отрегулировав номер версии.