I got an error message - error “No EmacSQL SQLite binary available, aborting” when trying to install org-roam V2 on MAC.
I am running Emacs 27.2 on macOS Monterey (12.1 Beta). When I ran which sqlite3 command, it returns /usr/bin/sqlite3. I also have the emacsql-sqlite3 package installed.
I open emacs and run the migration wizard, and I get this error
Compiling EmacSQL SQLite binary ...
Org-roam initialization: (error "No EmacSQL SQLite binary available, aborting")
Cannot open load file: No such file or directory, org-roam-graph
Org-roam relies on an Emacs package called emacsql and emacsql-sqlite to work with the sqlite database. Both of them should be installed automatically in your Emacs environment as a prerequisite for Org-roam when you install it.
emacsql-sqlite requires a C compiler (e.g. gcc or clang ) to be present in your computer. How to install a C compiler depends on the OS that you use.
I believe it’s easy on macOS to install either gcc or clang. One of them may be part of X-code like Git. Or perhaps via brew?
Don’t use emacsql-sqlite3.; it does not work. By default, you should not have to do any manual configuration – I think that’s why you get the error message.
If you install a C compiler and do it again, it should work.
For this… Are you on Doom or use Straight or something to install Org-roam? Some of these features inculuding graph is in a subdirectory of the repo called extesions. You need to also get .el files from it. Adjust your configuration for your package manager. You don’t need to do anything for this if you are using the built-in package.el.
I am still having a hard time to handle the configuration. For instance, I don’t know why I cannot toggle the org roam buffer…
I don’t have the function org-roam-buffer-toggle to choose when I do M-x.
I don’t know exactly how Doom works.
Two questions:
Are you aware of the (+roam2) flag for Doom’s org module?
Does after! macro load or requireorg-roam before you call the org-roam-buffer-toggle command?
If the answer to question 2 above, I think you would need to tell Doom to register org-roam-buffer-toggle for autoloading org-roam – so that when you call the command, Emacs will automatically load org-roam if it hasn’t.
If I remember correctly, the :bind or :command directives within use-package! does this.
So… I think it should be something like below – note I can’t test it but I believe I’ve seen something like it used by others.
(use-package! org-roam
:init
(setq org-roam-v2-ack t)
:command
;; I don't know exact syntax, but it would be a list of symbols???
'(org-roam-db-sync org-roam-buffer-toggle) ;;; .. and so on
:config
;;; setq config continues...
)
I am not sure though why my preference of having the window to take only 0.33 of the large window does not work.
I set it like this (taken from the documentation)
It’s weird if something is missing because I have copied it from the documentation.
Also, in other places in my configuration, when doing add-to-list there is the same number of parenthesis as here.