Reputation: 469
I upgraded emacs on a remote terminal to 23-snapshot. As I did not have root privileges there, I did 'make install' with 'prefix' set to a folder in my home directory. Now when I start emacs, it gives an error 'Cannot open load file: encoded-kb', it, also, is unable to run dired or load cc-mode. I tried starting it with '--no-site-file', '-Q', '-q', all have the same issue. My .emacs is empty. Any suggestions?
Thanks for your help.
Regards, Nishith
Update: These are the messages I get when I try to run 'emacs' no arguments.
Warning: arch-dependent data dir (/usr/local/libexec/emacs/23.0.93/x86_64-unknown-linux-gnu/) does not exist.
Warning: Lisp directory `/usr/local/share/emacs/23.0.93/site-lisp' does not exist.
Warning: Lisp directory `/usr/local/share/emacs/site-lisp' does not exist.
Warning: Lisp directory `/usr/local/share/emacs/23.0.93/lisp' does not exist.
Warning: Lisp directory `/usr/local/share/emacs/23.0.93/leim' does not exist.
Its a 64 bit system. Emacs source code was take from the cvs using
cvs -d:pserver:[email protected]:/sources/emacs co emacs
update2: Thanks Charlie and Trey for your answers. I think I will skip the 'make install' and stick to using the src/emacs for the time being. Cheers.
Upvotes: 7
Views: 7913
Reputation: 5999
Also check to see if you have an environment variable by the name of EMACSPATH
. Emacs expects it to be a directory.
Upvotes: 0
Reputation: 314
I ran into this same problem doing a build of emacs 25.0.92 on Windows 7.
D:\emacs\bin>emacs
Warning: arch-dependent data dir 'd:/emacs/libexec/emacs/24.5/x86_64-w64-mingw32/': Invalid argument
Warning: arch-independent data dir 'd:/emacs/share/emacs/24.5/etc/': Invalid argument
Warning: Lisp directory 'd:/emacs/share/emacs/24.5/site-lisp': Invalid argument
Warning: Lisp directory 'D:/emacs/share/emacs/24.5/lisp': Invalid argument
And I found the problem. There is a system registry key: HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs
, which defines the load path EMACSLOADPATH
.
I just delete the registry key to resolve the problem.
Upvotes: 1
Reputation: 17182
In my case my MacOSX was just pointing to an old version of Emacs, I don't know why. So, when I open it on graphical interface everything was OK but when I tried to open it on a terminal I got that error. So, I first find where the shortcut was pointing to and fixed the /usr/bin/emacs
path like this:
$ emacs --version
GNU Emacs 22.1.1
Copyright (C) 2007 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
$ whereis emacs
/usr/bin/emacs
$ sudo rm /usr/bin/emacs
$ sudo ln -s /usr/local/Cellar/emacs/HEAD/bin/emacs /usr/bin/emacs
$ emacs --version
GNU Emacs 24.4.50.1
Copyright (C) 2014 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
Upvotes: 2
Reputation: 11
I ran into this same problem doing a build of emacs 23.1 on AIX. In my case, I wanted to install emacs in my directory, as I was the only developer using emacs. The problem can be resolved by modifying the paths in the src/epaths.in file prior to running configure. Configure uses this file to create epaths.h. The --prefix= parameter does not change the paths in the epaths.in file. Using the --prefix= and modifying the epaths.in file fixed my issues.
Upvotes: 1
Reputation: 4199
For me, this error disappeared when I instead of changing the prefix
variable in the Makefiles, did a:
./configure --prefix=/my_special_path/usr/local
Upvotes: 5
Reputation: 112424
"encoded-kb.el" is in the standard internationalization code in the EMACS lisp directories, so something is not getting the right path. Your load-path is hosed somewhere. There are hooks in the makefile to let you explicitly set what the load-path should be to fix that.
Try dumping your load-path after you start up, say with (pp load-path)
and see what it's really looking at. To evaluate that, type
(pp load-path)^j
in your *scratch*
buffer. That buffer should be in lisp-interaction mode. The ^j
(Control-j, aka C-j) says to evaluate it. and the pp
will pretty-print the list.
Upvotes: 2
Reputation: 26322
AFAIK, make install
is needed in case of you want to install a package system-wide. Prefix only defines the prefix path of that system-wide installation, but it still requires the proper directory hierarchy (bin/, /lib, /share, etc). If you simply want to use CVS Emacs, you can run it right after the make
procedure. For instance, my Emacs' source code is located at ~/src/emacs/
, and I can simply type ~/src/emacs/src/emacs
in order to run Emacs.
Upvotes: 2