tags:

views:

890

answers:

4

Hi,

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.

+2  A: 

"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.

Charlie Martin
How do I use pp load=path ?
On doing that I get an error'Cannot open load file: debug'
+2  A: 

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.

Török Gábor
+1  A: 

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
Axel Bregnsbo
+1 This is what you should have done if you wanted a non-global install.
Noufal Ibrahim
A: 

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.

Chris