2

I'm trying to install emacs 26.3 on debian 10. After the download :

./configure
sudo make
sudo checkinstall

during the checkinstall, I have the following error :

 rm -f "/usr/local/share/emacs/26.3/lisp/subdirs.el"
 umask 022; ../build-aux/update-subdirs 
 "/usr/local/share/emacs/26.3/lisp"
 subdir="/usr/local/share/emacs/26.3/site-lisp" ; \
   if [ -f "${subdir}/subdirs.el" ]; then true; else umask 022; 
 /usr/bin/mkdir -p "${subdir}"; (echo "(if (fboundp 'normal-top-level- 
 add-subdirs-to-load-path)"; echo "    (normal-top-level-add-subdirs- 
 to-load-path))") > "${subdir}/subdirs.el"; fi
 subdir="/usr/local/share/emacs/site-lisp" ; \
   if [ -f "${subdir}/subdirs.el" ]; then true; else umask 022; 
 /usr/bin/mkdir -p "${subdir}"; (echo "(if (fboundp 'normal-top-level- 
 add-subdirs-to-load-path)"; echo "    (normal-top-level-add-subdirs- 
 to-load-path))") > "${subdir}/subdirs.el"; fi || true 
 [ -z "/usr/bin/gzip" ] || { \
   echo "Compressing *.el etc. ..." && \
   cd "/usr/local/share/emacs/26.3/lisp" && \
   for f in `find . -name "*.elc" -print | sed 's/.elc$/.el/'`; do \
     /usr/bin/gzip -9n "$f"; \
   done; \
   /usr/bin/gzip -9n "../etc/publicsuffix.txt"; \
 }
 Compressing *.el etc. ...
 gzip: ../etc/publicsuffix.txt: No such file or directory
 make: *** [Makefile:571: install-arch-indep] Error 1

 ****  Installation failed. Aborting package creation.

How can resolve this issue ?

4
  • 1
    Why the checkinstall? Is this the recommended procedure?
    – JeanPierre
    Oct 1, 2019 at 16:26
  • 1
    Also, why use sudo for make? There's no reason not to build as a normal user.
    – JeanPierre
    Oct 1, 2019 at 19:31
  • 1
    normally, checkinstall replace make install. But it seems it doesn't worked for this installation ...
    – Kafka
    Oct 2, 2019 at 7:31
  • Also happened to me with checkinstall and emacs version 29.0.50. Looks like compression is applied on /usr/local/share/emacs/<version>/etc, and that doesn't exist during checkinstall. Workaround appears to be ./configure --without-compress-install. Aug 8 at 23:30

2 Answers 2

1

This also happened to me with emacs version 29.0.50.

You can use checkinstall by the following:

mkdir build && cd build
../configure --without-compress-install
make
checkinstall -D --pkgversion 29.0.50
sudo dpkg -i emacs*.deb

Note: The version can be found in src/config.h, in the PACKAGE_VERSION preprocessor directive.

This way you may use package management to manage the installed files. However I presume there is a performance disadvantage in not compressing those files as is the default.

I considered using --prefix and using rm -r on that prefix later, as I'd prefer to build emacs in tmpfs and discard the emacs source tree. However on inspecting the checkinstall built package (with dpkg-deb -c) it installs files outside of the prefix into /usr/share/doc/emacs/, contrary to what ./configure --help indicates should happen.

Under the presumption that --without-compress-install causes performance loss: unfortunately until the makefiles of emacs are patched it looks like the best way to use and manage emacs is by keeping the source tree around and not using package management via checkinstall. It appears that stow has a distinct somewhat overlapping feature-set with package managers like dpkg, as described at emacswiki.org.

1
  • To be honest, I don't have test your solution, but it seems more accurate with the question. Thank you
    – Kafka
    Aug 14 at 12:58
1

You missed a step, after you run the make command, you need to run make install prefix=/replace/with/destination/path. You also do not need to use sudo during the make command, but you may have to use sudo during the make install step depending on where you want to install Emacs.

3
  • You can also ./configure --prefix=/usr/local (or wherever you wish), and subsequent commands will then use that prefix by default.
    – phils
    Oct 1, 2019 at 23:27
  • ok thank you, it's worked. But I can't use checkinstall package which allow easy remove of package that are not in the repository ...
    – Kafka
    Oct 2, 2019 at 7:30
  • @Kafka You can use the make uninstall command though (this will remove all files that were installed).
    – preetpalS
    Oct 3, 2019 at 12:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.