Debian 7 安装 Emacs 24.3

Emacs 24.3出来好久了,但是在Debian 7里还是Emacs 23的版本.

以下是安装步骤(9步):

sudo aptitude install git-core libxaw7-dev libxpm-dev libpng12-dev libtiff5-dev libgif-dev libjpeg8-dev libgtk2.0-dev libncurses5-dev autoconf automake texinfo

sudo apt-get build-dep emacs

git clone git://git.savannah.gnu.org/emacs.git
cd emacs/
git checkout emacs-24.3 git checkout -b custom_branch ./autogen.sh ./configure --prefix=/opt/emacs24 make --jobs=2 sudo make install

按这个顺序安装就好了,大概半个小时到一个小时的样子。

安装好后把emacs添加到PATH里,打开~/.bashrc 文件,在最后添加:

export PATH=$PATH:/opt/emacs24/bin

保存后:

source .bashrc

这样在终端里就可以直接输入 emacs 就可以启动了。

经常按alt+F2 打开应用程序窗口,但是这里面输入emacs却不行,办法是把emacs软链接到 /usr/bin 目录里:

cd /usr/bin

ln -s /opt/emacs24/bin/emacs emacs

打完收工!


 

2010.10.03 更新:

以上通过git的方式今天用起来好慢!只好换一种方式。

一、安装编译所需包 2014.10.03 10:43~10:45

sudo apt-get install libxaw7-dev libxpm-dev libpng12-dev libtiff5-dev libgif-dev libjpeg8-dev libgtk2.0-dev libncurses5-dev autoconf automake texinfo
正在读取软件包列表... 完成

正在分析软件包的依赖关系树       

正在读取状态信息... 完成       

将会安装下列额外的软件包:

  autopoint autotools-dev debhelper gettext html2text intltool-debian

  libatk1.0-dev libcairo-script-interpreter2 libcairo2-dev libelf1

  libexpat1-dev libfontconfig1-dev libfreetype6-dev libgdk-pixbuf2.0-dev

  libgettextpo0 libglib2.0-bin libglib2.0-dev libice-dev libjbig-dev

  liblzma-dev libmail-sendmail-perl libpango1.0-dev libpcre3-dev libpcrecpp0

  libpixman-1-dev libpthread-stubs0 libpthread-stubs0-dev libsm-dev

  libsys-hostname-long-perl libtiff5 libtiffxx5 libtinfo-dev libx11-dev

  libx11-doc libxau-dev libxcb-render0-dev libxcb-shm0-dev libxcb1-dev

  libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev

  libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxml2-utils libxmu-dev

  libxmu-headers libxrandr-dev libxrender-dev libxt-dev m4 pkg-config

  po-debconf x11proto-composite-dev x11proto-core-dev x11proto-damage-dev

  x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev

  x11proto-render-dev x11proto-xext-dev x11proto-xinerama-dev

  xorg-sgml-doctools xtrans-dev zlib1g-dev

建议安装的软件包:

  autoconf2.13 autoconf-archive gnu-standards autoconf-doc libtool dh-make

  gettext-doc libcairo2-doc libglib2.0-doc libgtk2.0-doc libice-doc

  liblzma-doc ncurses-doc libpango1.0-doc imagemagick libsm-doc libxaw-doc

  libxcb-doc libxext-doc libxt-doc libmail-box-perl texlive-base

  texlive-latex-base texlive-generic-recommended texinfo-doc-nonfree

下列【新】软件包将被安装:

  autoconf automake autopoint autotools-dev debhelper gettext html2text

  intltool-debian libatk1.0-dev libcairo-script-interpreter2 libcairo2-dev

  libelf1 libexpat1-dev libfontconfig1-dev libfreetype6-dev

  libgdk-pixbuf2.0-dev libgettextpo0 libgif-dev libglib2.0-bin libglib2.0-dev

  libgtk2.0-dev libice-dev libjbig-dev libjpeg8-dev liblzma-dev

  libmail-sendmail-perl libncurses5-dev libpango1.0-dev libpcre3-dev

  libpcrecpp0 libpixman-1-dev libpng12-dev libpthread-stubs0

  libpthread-stubs0-dev libsm-dev libsys-hostname-long-perl libtiff5

  libtiff5-dev libtiffxx5 libtinfo-dev libx11-dev libx11-doc libxau-dev

  libxaw7-dev libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxcomposite-dev

  libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev

  libxft-dev libxi-dev libxinerama-dev libxml2-utils libxmu-dev libxmu-headers

  libxpm-dev libxrandr-dev libxrender-dev libxt-dev m4 pkg-config po-debconf

  texinfo x11proto-composite-dev x11proto-core-dev x11proto-damage-dev

  x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev

  x11proto-render-dev x11proto-xext-dev x11proto-xinerama-dev

  xorg-sgml-doctools xtrans-dev zlib1g-dev

升级了 0 个软件包,新安装了 80 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。

需要下载 28.1 MB 的软件包。

解压缩后会消耗掉 91.4 MB 的额外空间。

您希望继续执行吗?[Y/n]
View Code

 Yes后开始下载安装这些包,结束时有此提示:

在处理时有错误发生:

 /var/cache/apt/archives/libfontconfig1-dev_2.9.0-7.1_amd64.deb

E: Sub-process /usr/bin/dpkg returned an error code (1)

google了下,好像是下载文件不完整造成的,删除该包,重新下载安装:

sudo rm /var/cache/apt/archives/libfontconfig1-dev_2.9.0-7.1_amd64.deb

sudo apt-get install libfontconfig1-dev

二、下载emacs压缩包

从这里下载:http://mirror.bjtu.edu.cn/gnu/emacs/
文件叫 emacs-24.3.tar.gz 有50M,下载在Download目录里。
$ cd ~/Download

$ tar zxvf emacs-24.3.tar.gz # 解压后有170M。

三、编译前配置 11:13~11:14

在Download目录里新建一个目录放置编译时生成的文件,以免所有的文件都在解压后的 emacs-24.3 目录里。

$ mkdir compileemacs # 放置编译后生成的文件

$ cd compileemacs

$ ../emacs-24.3/configure --prefix=/opt/emacs
checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /bin/mkdir -p

checking for gawk... no

checking for mawk... mawk

checking whether make sets $(MAKE)... yes

checking build system type... x86_64-unknown-linux-gnu

checking host system type... x86_64-unknown-linux-gnu

checking for gcc... gcc

checking whether the C compiler works... yes

checking for C compiler default output file name... a.out

checking for suffix of executables...

checking whether we are cross compiling... no

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ISO C89... none needed

checking for style of include used by make... GNU

checking dependency style of gcc... gcc3

checking whether gcc and cc understand -c and -o together... yes

checking how to run the C preprocessor... gcc -E

checking for grep that handles long lines and -e... /bin/grep

checking for egrep... /bin/grep -E

checking for Minix Amsterdam compiler... no

checking for ar... ar

checking for ranlib... ranlib

checking for ANSI C header files... yes

checking for sys/types.h... yes

checking for sys/stat.h... yes

checking for stdlib.h... yes

checking for string.h... yes

checking for memory.h... yes

checking for strings.h... yes

checking for inttypes.h... yes

checking for stdint.h... yes

checking for unistd.h... yes

checking minix/config.h usability... no

checking minix/config.h presence... no

checking for minix/config.h... no

checking whether it is safe to define __EXTENSIONS__... yes

checking for special C compiler options needed for large files... no

checking for _FILE_OFFSET_BITS value needed for large files... no

checking for gcc option to accept ISO C99... -std=gnu99

checking for gcc -std=gnu99 option to accept ISO Standard C... (cached) -std=gnu99

checking whether gcc -std=gnu99 accepts -g3 -O2... yes

checking whether ln -s works... yes

checking for install-info... /usr/bin/install-info

checking for gzip... /bin/gzip

checking for paxctl... no

checking for makeinfo... /usr/bin/makeinfo

checking for -znocombreloc... yes

checking for pkg-config... /usr/bin/pkg-config

checking machine/soundcard.h usability... no

checking machine/soundcard.h presence... no

checking for machine/soundcard.h... no

checking sys/soundcard.h usability... yes

checking sys/soundcard.h presence... yes

checking for sys/soundcard.h... yes

checking soundcard.h usability... no

checking soundcard.h presence... no

checking for soundcard.h... no

checking for _oss_ioctl in -lossaudio... no

checking for alsa >= 1.0.0... no

checking for linux/version.h... yes

checking for sys/systeminfo.h... no

checking for stdio_ext.h... yes

checking for fcntl.h... yes

checking for coff.h... no

checking for pty.h... yes

checking for sys/vlimit.h... yes

checking for sys/resource.h... yes

checking for sys/utsname.h... yes

checking for pwd.h... yes

checking for utmp.h... yes

checking for dirent.h... yes

checking for util.h... no

checking for sys/socket.h... yes

checking for stdlib.h... (cached) yes

checking for unistd.h... (cached) yes

checking for sys/param.h... yes

checking for pthread.h... yes

checking for malloc/malloc.h... no

checking for maillock.h... no

checking for sys/un.h... yes

checking for execinfo.h... yes

checking for getopt.h... yes

checking for sys/time.h... yes

checking for wchar.h... yes

checking for stdint.h... (cached) yes

checking for inttypes.h... (cached) yes

checking for sys/select.h... yes

checking for sys/stat.h... (cached) yes

checking for utime.h... yes

checking if personality LINUX32 can be set... yes

checking for term.h... yes

checking whether time.h and sys/time.h may both be included... yes

checking whether sys_siglist is declared... yes

checking for sys/wait.h that is POSIX.1 compatible... yes

checking for speed_t... yes

checking for net/if.h... yes

checking for ifaddrs.h... yes

checking for net/if_dl.h... no

checking for struct ifreq.ifr_flags... yes

checking for struct ifreq.ifr_hwaddr... yes

checking for struct ifreq.ifr_netmask... yes

checking for struct ifreq.ifr_broadaddr... yes

checking for struct ifreq.ifr_addr... yes

checking for struct ifreq.ifr_addr.sa_len... no

checking whether we are using GNU Make... yes

checking whether gcc understands -MMD -MF... yes

checking for long file names... yes

checking for X... libraries , headers

checking whether malloc is Doug Lea style... yes

checking for getpagesize... yes

checking for working mmap... yes

checking for dnet_ntoa in -ldnet... no

checking for main in -lXbsd... no

checking for pthread_self in -lpthread... yes

checking for cma_open in -lpthreads... no

checking whether X on GNU/Linux needs -b to link... no

checking for Xkb... yes

checking for XrmSetDatabase... yes

checking for XScreenResourceString... yes

checking for XScreenNumberOfScreen... yes

checking X11 version 6... 6 or newer

checking for librsvg-2.0 >= 2.11.0... no

checking for Wand >= 6.2.8... no

checking for gtk+-3.0 >= 3.0 glib-2.0 >= 2.28... no

checking for gtk+-2.0 >= 2.10 glib-2.0 >= 2.10... yes CFLAGS='-pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12  ' LIBS='-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0  '

checking for gtk_main... yes

checking whether GTK_TYPE_FILE_SELECTION is declared... yes

checking for gtk_file_selection_new... yes

checking for gtk_widget_get_window... yes

checking for gtk_widget_set_has_window... yes

checking for gtk_dialog_get_action_area... yes

checking for gtk_widget_get_sensitive... yes

checking for gtk_widget_get_mapped... yes

checking for gtk_adjustment_get_page_size... yes

checking for gtk_orientable_set_orientation... yes

checking for gtk_window_set_has_resize_grip... no

checking for dbus-1 >= 1.0... no

checking for gio-2.0 >= 2.26... yes CFLAGS='-pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include  ' LIBS='-lgio-2.0 -lgobject-2.0 -lglib-2.0  '

checking for gconf-2.0 >= 2.13... no

checking for gobject-2.0 >= 2.0... yes CFLAGS='-I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include  ' LIBS='-lgobject-2.0 -lglib-2.0  '

checking for g_type_init... yes

checking for lgetfilecon in -lselinux... no

checking for gnutls >= 2.6.6... no

checking for gnutls_certificate_set_verify_function... no

checking for fontconfig >= 2.2.0... yes CFLAGS=' ' LIBS='-lfontconfig  '

checking for xft >= 0.13.0... yes CFLAGS='-I/usr/include/freetype2  ' LIBS='-lXft  '

checking for XRenderQueryExtension in -lXrender... yes

checking X11/Xft/Xft.h usability... yes

checking X11/Xft/Xft.h presence... yes

checking for X11/Xft/Xft.h... yes

checking for XftFontOpen in -lXft... yes

checking for freetype2... yes CFLAGS='-I/usr/include/freetype2  ' LIBS='-lfreetype  '

checking for libotf... no

checking X11/xpm.h usability... yes

checking X11/xpm.h presence... yes

checking for X11/xpm.h... yes

checking for XpmReadFileToPixmap in -lXpm... yes

checking for XpmReturnAllocPixels preprocessor define... yes

checking jerror.h usability... yes

checking jerror.h presence... yes

checking for jerror.h... yes

checking for jpeg_destroy_compress in -ljpeg... yes

checking png.h usability... yes

checking png.h presence... yes

checking for png.h... yes

checking for png_get_channels in -lpng... yes

checking whether png_longjmp is declared... no

checking tiffio.h usability... yes

checking tiffio.h presence... yes

checking for tiffio.h... yes

checking for TIFFGetVersion in -ltiff... yes

checking gif_lib.h usability... yes

checking gif_lib.h presence... yes

checking for gif_lib.h... yes

checking for EGifPutExtensionLast in -lgif... yes

checking gpm.h usability... no

checking gpm.h presence... no

checking for gpm.h... no

checking X11/SM/SMlib.h usability... yes

checking X11/SM/SMlib.h presence... yes

checking for X11/SM/SMlib.h... yes

checking for SmcOpenConnection in -lSM... yes

checking for libxml-2.0 > 2.6.17... no

checking whether netdb declares h_errno... yes

checking for sqrt in -lm... yes

checking for maillock in -lmail... no

checking for maillock in -llockfile... no

checking for liblockfile.so... no

checking for gethostname... yes

checking for closedir... yes

checking for getrusage... yes

checking for get_current_dir_name... yes

checking for lrand48... yes

checking for setsid... yes

checking for fpathconf... yes

checking for select... yes

checking for euidaccess... yes

checking for getpagesize... (cached) yes

checking for setlocale... yes

checking for utimes... yes

checking for getrlimit... yes

checking for setrlimit... yes

checking for setpgid... yes

checking for getcwd... yes

checking for shutdown... yes

checking for getaddrinfo... yes

checking for __fpending... yes

checking for strsignal... yes

checking for setitimer... yes

checking for sendto... yes

checking for recvfrom... yes

checking for getsockname... yes

checking for getpeername... yes

checking for getifaddrs... yes

checking for freeifaddrs... yes

checking for gai_strerror... yes

checking for mkstemp... yes

checking for getline... yes

checking for getdelim... yes

checking for fsync... yes

checking for sync... yes

checking for difftime... yes

checking for posix_memalign... yes

checking for getpwent... yes

checking for endpwent... yes

checking for getgrent... yes

checking for endgrent... yes

checking for touchlock... no

checking for cfmakeraw... yes

checking for cfsetspeed... yes

checking for copysign... yes

checking for __executable_start... yes

checking for getwd... yes

checking for random... yes

checking for rint... yes

checking for __builtin_unwind_init... yes

checking for _LARGEFILE_SOURCE value needed for large files... no

checking whether getpgrp requires zero arguments... yes

checking for grantpt... yes

checking for getpt... yes

checking for posix_openpt... yes

checking for library containing tputs... -ltinfo

checking for tzset... yes

checking for readlinkat... yes

checking for gettimeofday... yes

checking for nanotime... no

checking for lstat... yes

checking for alarm... yes

checking for pselect... yes

checking for pthread_sigmask... yes

checking for readlink... yes

checking for strtoimax... yes

checking for strtoumax... yes

checking for symlink... yes

checking for localtime_r... yes

checking for futimes... yes

checking for futimesat... yes

checking for futimens... yes

checking for utimensat... yes

checking for lutimes... yes

checking whether localtime caches TZ... no

checking for socket... yes

checking netinet/in.h usability... yes

checking netinet/in.h presence... yes

checking for netinet/in.h... yes

checking arpa/inet.h usability... yes

checking arpa/inet.h presence... yes

checking for arpa/inet.h... yes

checking whether system supports dynamic ptys... yes

checking for pid_t... yes

checking vfork.h usability... no

checking vfork.h presence... no

checking for vfork.h... no

checking for fork... yes

checking for vfork... yes

checking for working fork... yes

checking for working vfork... (cached) yes

checking for snprintf... yes

checking for nl_langinfo and CODESET... yes

checking for mbstate_t... yes

checking for C restricted array declarations... yes

checking for signals via characters... yes

checking whether we are using the GNU C library... yes

checking for style of pending output formalism... new

checking for _setjmp... yes

checking for usable FIONREAD... yes

checking for usable SIGIO... yes

checking for working alloca.h... yes

checking for alloca... yes

checking whether byte ordering is bigendian... no

checking for inline... inline

checking whether strtold conforms to C99... yes

checking if environ is properly declared... yes

checking for st_dm_mode in struct stat... no

checking whether strmode is declared... no

checking whether the preprocessor supports include_next... yes

checking whether system header files limit the line length... no

checking for getopt.h... (cached) yes

checking for getopt_long_only... yes

checking whether getopt is POSIX compatible... yes

checking for working GNU getopt function... no

checking whether getenv is declared... yes

checking for C/C++ restrict keyword... __restrict

checking for struct timeval... yes

checking for wide-enough struct timeval.tv_sec member... yes

checking for unsigned long long int... yes

checking for long long int... yes

checking whether stdint.h conforms to C99... yes

checking whether lstat correctly handles trailing slash... yes

checking whether <sys/select.h> is self-contained... yes

checking for sigset_t... yes

checking for stdbool.h that conforms to C99... yes

checking for _Bool... yes

checking for wchar_t... yes

checking whether struct tm is in sys/time.h or time.h... time.h

checking for struct tm.tm_zone... yes

checking for struct tm.tm_gmtoff... yes

checking whether strtoimax is declared... yes

checking whether strtoumax is declared... yes

checking whether stat file-mode macros are broken... no

checking for mode_t... yes

checking for struct timespec in <time.h>... yes

checking whether the utimes function works... yes

checking for struct utimbuf... yes

checking for alloca as a compiler built-in... yes

checking for library containing clock_gettime... -lrt

checking for clock_gettime... yes

checking for clock_settime... yes

checking whether dup2 works... yes

checking for library containing backtrace_symbols_fd... none required

checking for getloadavg... yes

checking sys/loadavg.h usability... no

checking sys/loadavg.h presence... no

checking for sys/loadavg.h... no

checking whether getloadavg is declared... yes

checking whether gettimeofday clobbers localtime buffer... no

checking for gettimeofday with POSIX signature... almost

checking for working mktime... yes

checking whether signature of pselect conforms to POSIX... yes

checking whether pselect detects invalid fds... yes

checking whether pthread_sigmask works without -lpthread... yes

checking whether pthread_sigmask returns error numbers... yes

checking whether pthread_sigmask unblocks signals correctly... guessing yes

checking whether readlink signature is correct... yes

checking whether readlink handles trailing slash correctly... yes

checking for volatile sig_atomic_t... yes

checking for sighandler_t... yes

checking for socklen_t... yes

checking for ssize_t... yes

checking for struct stat.st_atim.tv_nsec... yes

checking whether struct stat.st_atim is of type struct timespec... yes

checking for struct stat.st_birthtimespec.tv_nsec... no

checking for struct stat.st_birthtimensec... no

checking for struct stat.st_birthtim.tv_nsec... no

checking for working stdalign.h... no

checking for va_copy... yes

checking whether NULL can be used in arbitrary expressions... yes

checking whether strtoimax works... yes

checking whether symlink handles trailing slash correctly... yes

checking whether <sys/select.h> is self-contained... (cached) yes

checking for nlink_t... yes

checking whether localtime_r is declared... yes

checking whether localtime_r is compatible with its POSIX signature... yes

checking for library containing timer_settime... -lrt

checking for timer_settime... yes



Configured for `x86_64-unknown-linux-gnu'.



  Where should the build process find the source code?    /home/z/Download/emacs-24.3

  What compiler should emacs be built with?               gcc -std=gnu99 -g3 -O2

  Should Emacs use the GNU version of malloc?             yes

      (Using Doug Lea's new malloc from the GNU C Library.)

  Should Emacs use a relocating allocator for buffers?    no

  Should Emacs use mmap(2) for buffer allocation?         no

  What window system should Emacs use?                    x11

  What toolkit should Emacs use?                          GTK2

  Where do we find X Windows header files?                Standard dirs

  Where do we find X Windows libraries?                   Standard dirs

  Does Emacs use -lXaw3d?                                 no

  Does Emacs use -lXpm?                                   yes

  Does Emacs use -ljpeg?                                  yes

  Does Emacs use -ltiff?                                  yes

  Does Emacs use a gif library?                           yes -lgif

  Does Emacs use -lpng?                                   yes

  Does Emacs use -lrsvg-2?                                no

  Does Emacs use imagemagick?                             no

  Does Emacs use -lgpm?                                   no

  Does Emacs use -ldbus?                                  no

  Does Emacs use -lgconf?                                 no

  Does Emacs use GSettings?                               yes

  Does Emacs use -lselinux?                               no

  Does Emacs use -lgnutls?                                no

  Does Emacs use -lxml2?                                  no

  Does Emacs use -lfreetype?                              yes

  Does Emacs use -lm17n-flt?                              no

  Does Emacs use -lotf?                                   no

  Does Emacs use -lxft?                                   yes

  Does Emacs use toolkit scroll bars?                     yes





configure: creating ./config.status

config.status: creating Makefile

config.status: creating lib/Makefile

config.status: creating lib-src/Makefile

config.status: creating oldXMenu/Makefile

config.status: creating doc/emacs/Makefile

config.status: creating doc/misc/Makefile

config.status: creating doc/lispintro/Makefile

config.status: creating doc/lispref/Makefile

config.status: creating src/Makefile

config.status: creating lwlib/Makefile

config.status: creating lisp/Makefile

config.status: creating leim/Makefile

config.status: creating nextstep/Makefile

config.status: creating admin/unidata/Makefile

config.status: creating src/config.h

config.status: executing depfiles commands

config.status: executing mkdirs commands

config.status: executing epaths commands

creating src/epaths.h

config.status: executing gdbinit commands

creating src/.gdbinit
View Code

四、编译 11:21~11:29

$ make

五、安装  11:47~11:48

sudo make install

安装成功后添加到环境变量中:

export PATH=$PATH:/opt/emacs24/bin

软链接到 /usr/bin 目录里:

cd /usr/bin

ln -s /opt/emacs24/bin/emacs emacs

ls -l emacs 

lrwxrwxrwx 1 root root 22 10月  3 11:54 emacs -> /opt/emacs24/bin/emacs

Debian 7 安装 Emacs 24.3

--End--

 

你可能感兴趣的:(Debian)