emacs中的dbus错误
Posted
技术标签:
【中文标题】emacs中的dbus错误【英文标题】:dbus error in emacs 【发布时间】:2014-02-07 10:08:00 【问题描述】:我尝试在 OS X 上使用 notify.el,但每次都会出现下一个错误:
Symbol's value as variable is void: dbus-message-type-method-call
emacs --debug-init 给出下一个输出:
Debugger entered--Lisp error: (void-variable dbus-message-type-method-call)
dbus-call-method(:session "org.freedesktop.Notifications" "/org/freedesktop/DBus" "org.freedesktop.DBus.Peer" "Ping")
byte-code("\305^H!\203^S^@\306 \n^K\f\307\310^H&^G\202^Z^@\306 \n^K\f\307%?\207" [timeout bus service dbus-path-dbus dbus-interface-peer natnump dbus-call-method "Ping" :timeout] 8)
dbus-ping(:session "org.freedesktop.Notifications")
(and (require (quote dbus) nil t) (dbus-ping :session "org.freedesktop.Notifications"))
(cond ((executable-find "growlnotify") (quote notify-via-growl)) ((and (require (quote dbus) nil t) (dbus-ping :session "org.freedesktop.Notifications")) (defvar notify-id 0 "Current D-Bus notification$
(setq notify-method (cond ((executable-find "growlnotify") (quote notify-via-growl)) ((and (require (quote dbus) nil t) (dbus-ping :session "org.freedesktop.Notifications")) (defvar notify-id 0 "Curren$
(cond ((null notify-method) (setq notify-method (cond ((executable-find "growlnotify") (quote notify-via-growl)) ((and (require (quote dbus) nil t) (dbus-ping :session "org.freedesktop.Notifications"))$
eval-buffer(#<buffer *load*-569235> nil "/Users/araeris/.emacs.d/packages/notify/notify.el" nil t) ; Reading at buffer position 3614
load-with-code-conversion("/Users/araeris/.emacs.d/packages/notify/notify.el" "/Users/araeris/.emacs.d/packages/notify/notify.el" nil t)
require(notify)
(if (fboundp name) nil (add-to-list (quote load-path) (concat (file-name-directory (or load-file-name (buffer-file-name))) "packages/" (symbol-name name))) (require name))
(progn (if (fboundp name) nil (add-to-list (quote load-path) (concat (file-name-directory (or load-file-name (buffer-file-name))) "packages/" (symbol-name name))) (require name)))
(while (consp --cl-var--) (setq name (car --cl-var--)) (progn (if (fboundp name) nil (add-to-list (quote load-path) (concat (file-name-directory (or load-file-name (buffer-file-name))) "packages/" (sym$
(let* ((--cl-var-- packages) (name nil)) (while (consp --cl-var--) (setq name (car --cl-var--)) (progn (if (fboundp name) nil (add-to-list (quote load-path) (concat (file-name-directory (or load-file-n$
(progn (let* ((--cl-var-- packages) (name nil)) (while (consp --cl-var--) (setq name (car --cl-var--)) (progn (if (fboundp name) nil (add-to-list (quote load-path) (concat (file-name-directory ...) "pa$
eval-buffer(#<buffer *load*> nil "/Users/araeris/.emacs.d/init.el" nil t) ; Reading at buffer position 1796
load-with-code-conversion("/Users/araeris/.emacs.d/init.el" "/Users/araeris/.emacs.d/init.el" t t)
load("/Users/araeris/.emacs.d/init" t t)
#[0 "^H\205\262^@ \306=\203^Q^@\307^H\310Q\202;^@ \311=\204^^^@\307^H\312Q\202;^@\313\307\314\315#\203*^@\316\202;^@\313\307\314\317#\203:^@\320\nB^R\321\202;^@\316\322^S\323^A\322\211#\210^K\322=\$
command-line()
normal-top-level()
有人知道怎么处理吗?
P。 S. 我已经通过自制软件安装了 dbus。
【问题讨论】:
【参考方案1】:您需要构建支持 DBus 的 Emacs 才能真正使用 DBus。在 OS X 上,这很不寻常,而且我看不出你想在 Emacs 中使用 DBus 支持做什么,因为在 OS X 上没有其他东西使用 DBus。
不过,如果您只是在收到通知,则不需要 DBus。事实上,DBus 不会在 OS X 上给你通知。
对于带有notify.el 的 OS X 通知,您需要 Growl。即,你必须在 AppStore 中购买 Growl,或者自己构建,另外从http://growl.info/downloads 安装 Growlnotifier。
【讨论】:
然后(setq notify-method 'notify-via-growl)
(或失败的咆哮,只需将其设置为不是'notify-via-dbus
的选项之一)以上是关于emacs中的dbus错误的主要内容,如果未能解决你的问题,请参考以下文章
Emacs:尝试切换到乳胶模式时出现与 dbus 相关的错误
如何在 Windows 10 上修复 Python 3 中的 notify2 'dbus' 错误
如何根据 dbus-monitor 输出中的错误确定 SELinux 规则