Cài đặt emacs24 tối thiểu trên Ubuntu


6

Tôi cần một cài đặt emacs tối thiểu 24 để phân phối trong một hộp ảo. Khi tôi cố gắng cài đặt emacs-snapshot từ synap, tôi nhận được vô số thứ được cài đặt như ghostscript và tưởng tượng và nhiều lib khác nhau. Tôi có cần chúng không? Có cách nào để giái quyết vấn đề này không?


1
Không chắc chắn nếu điều này có thể áp dụng được hay không, nhưng nếu bạn hài lòng với một Emacs chỉ dành cho thiết bị đầu cuối, emacs-snapshot-noxsẽ thu được ít phụ thuộc hơn.
Legoscia

Câu trả lời:


6

Tôi cần một cài đặt emacs tối thiểu 24 để phân phối trong một hộp ảo. Khi tôi cố gắng cài đặt emacs ...

Tôi biết cảm giác ... Khi tôi cài đặt, emacs-noxnó có thể hơn 100 MB. Điều đó không được chấp nhận đối với một số thiết bị bị hạn chế tài nguyên, như BeagleBoard hoặc Banana Pro chỉ có vài trăm MB dung lượng miễn phí.

Bạn có thể tìm nạp và giải nén các emacs mới nhất với (để hoàn thành công thức):

wget http://mirrors.syringanetworks.net/gnu/emacs/emacs-24.5.tar.gz
tar xzf emacs-24.5.tar.gz 
cd emacs-24.5/

Sau đây là cấu hình tôi sử dụng cho emacs-24.5 . Nó tạo ra nhị phân 25,4 MB:

./configure --with-xml2 --with-zlib --without-x --without-sound --without-xpm \
  --without-jpeg --without-tiff --without-gif --without-png --without-rsvg \
  --without-imagemagick --without-xft --without-libotf --without-m17n-flt \
  --without-xaw3d --without-toolkit-scroll-bars --without-gpm --without-dbus \
  --without-gconf --without-gsettings --without-makeinfo \
  --without-compress-install

Và:

$ ls -l /usr/local/bin/
total 26648
...
lrwxrwxrwx 1 root staff        4 Jan  8  2015 bin2fex -> fexc
-rwxr-xr-x 1 root staff   580105 Jan 19 23:10 ctags
-rwxr-xr-x 1 root staff   251350 Jan 19 23:10 ebrowse
lrwxrwxrwx 1 root staff       10 Jan 19 23:10 emacs -> emacs-24.5
-rwxr-xr-t 1 root staff 25453742 Jan 19 23:10 emacs-24.5
-rwxr-xr-x 1 root staff   260328 Jan 19 23:10 emacsclient
-rwxr-xr-x 1 root staff   578307 Jan 19 23:10 etags
lrwxrwxrwx 1 root staff        4 Jan  8  2015 fex2bin -> fexc
-rwxr-xr-x 1 root staff    49726 Jan  8  2015 fexc
...

Xây dựng từ các nguồn đã yêu cầu những thứ như trình biên dịch và trình liên kết, nhưng tôi vẫn cài đặt chúng thông qua build-essentialgói. Sự phụ thuộc duy nhất còn thiếu là ncursesgói ( ncurses-dev).

Ngay cả khi đã loại bỏ tất cả các công cụ GUI bổ sung, bạn vẫn nhận được các màn hình cằn nhằn với các siêu liên kết. Nhưng nhị phân là 1/4 kích thước, vì vậy tôi gọi nó là một chiến thắng.


$ ./configure ...

  Where should the build process find the source code?    .
  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?                    none
  What toolkit should Emacs use?                          none
  Where do we find X Windows header files?                NONE
  Where do we find X Windows libraries?                   NONE
  Does Emacs use -lXaw3d?                                 no
  Does Emacs use -lXpm?                                   no
  Does Emacs use -ljpeg?                                  no
  Does Emacs use -ltiff?                                  no
  Does Emacs use a gif library?                           no 
  Does Emacs use a png library?                           no 
  Does Emacs use -lrsvg-2?                                no
  Does Emacs use imagemagick?                             no
  Does Emacs support sound?                               no
  Does Emacs use -lgpm?                                   no
  Does Emacs use -ldbus?                                  no
  Does Emacs use -lgconf?                                 no
  Does Emacs use GSettings?                               no
  Does Emacs use a file notification library?             yes -lglibc (inotify)
  Does Emacs use access control lists?                    no
  Does Emacs use -lselinux?                               no
  Does Emacs use -lgnutls?                                no
  Does Emacs use -lxml2?                                  no
  Does Emacs use -lfreetype?                              no
  Does Emacs use -lm17n-flt?                              no
  Does Emacs use -lotf?                                   no
  Does Emacs use -lxft?                                   no
  Does Emacs directly use zlib?                           no
  Does Emacs use toolkit scroll bars?                     no

3

Bạn cần chúng nếu bạn cần chức năng mà chúng thể hiện; ví dụ: thư viện ghostscript để xử lý Postcript được sử dụng trong hệ thống in của Emacs và thư viện fantemagick liên quan nhiều đến hỗ trợ hình ảnh của Emacs.

Điều đó nói rằng, nếu bạn không cần Emacs của mình để tạo Postcript hoặc hiển thị hình ảnh, thì, cách tốt nhất để giải quyết nhu cầu cho các thư viện đó là lấy và xây dựng nguồn Emacs, chỉ cho phép các khả năng bạn thực sự cần để giảm thiểu số lượng thư viện bên ngoài Emacs được liên kết với.

Bạn có thể lấy nguồn Emacs từ trang web Dự án GNU . Khi bạn đã tải xuống và giải nén nó, bản dựng tuân theo configure <options> && make && make installquy ước thông thường.

Dưới đây là danh sách đầy đủ các tùy chọn cấu hình (đầu ra của configure --help) cho Emacs 24.3:

`configure' configures emacs 24.3 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/emacs]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]

Program names:
  --program-prefix=PREFIX            prepend PREFIX to installed program names
  --program-suffix=SUFFIX            append SUFFIX to installed program names
  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names

X features:
  --x-includes=DIR    X include files are in DIR
  --x-libraries=DIR   X library files are in DIR

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --disable-ns-self-contained
                          disable self contained build under NeXTstep
  --enable-locallisppath=PATH
                          directories Emacs should search for lisp files
                          specific to this site
  --enable-checking[=LIST]
                          enable expensive run-time checks. With LIST, enable
                          only specific categories of checks. Categories are:
                          all,yes,no. Flags are: stringbytes, stringoverrun,
                          stringfreelist, xmallocoverrun, conslist, glyphs
  --enable-check-lisp-object-type
                          enable compile time checks for the Lisp_Object data
                          type. This is useful for development for catching
                          certain types of bugs.
  --enable-profiling      build emacs with low-level, gprof profiling support.
                          Mainly useful for debugging Emacs itself. May not
                          work on all platforms. Stops profiler.el working.
  --enable-autodepend     automatically generate dependencies to .h-files.
                          Requires GNU Make and Gcc. Enabled if GNU Make and
                          Gcc is found
  --disable-dependency-tracking  speeds up one-time build
  --enable-dependency-tracking   do not reject slow dependency extractors
  --disable-largefile     omit support for large files
  --enable-gcc-warnings   turn on lots of GCC warnings/errors. This is
                          intended for developers, and may generate false
                          alarms when used with older or non-GNU development
                          tools.
  --enable-link-time-optimization
                          build emacs with link-time optimization. This is
                          supported only for GCC since 4.5.0.

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --without-all           omit almost all features and build small executable
                          with minimal dependencies
  --without-pop           don't support POP mail retrieval with movemail
  --with-kerberos         support Kerberos-authenticated POP
  --with-kerberos5        support Kerberos version 5 authenticated POP
  --with-hesiod           support Hesiod to get the POP server host
  --with-mmdf             support MMDF mailboxes
  --with-mail-unlink      unlink, rather than empty, mail spool after reading
  --with-mailhost=HOSTNAME
                          string giving default POP mail host
  --without-sound         don't compile with sound support
  --with-x-toolkit=KIT    use an X toolkit (KIT one of: yes or gtk, gtk2,
                          gtk3, lucid or athena, motif, no)
  --with-wide-int         prefer wide Emacs integers (typically 62-bit)
  --without-xpm           don't compile with XPM image support
  --without-jpeg          don't compile with JPEG image support
  --without-tiff          don't compile with TIFF image support
  --without-gif           don't compile with GIF image support
  --without-png           don't compile with PNG image support
  --without-rsvg          don't compile with SVG image support
  --without-xml2          don't compile with XML parsing support
  --without-imagemagick   don't compile with ImageMagick image support
  --without-xft           don't use XFT for anti aliased fonts
  --without-libotf        don't use libotf for OpenType font support
  --without-m17n-flt      don't use m17n-flt for text shaping
  --without-toolkit-scroll-bars
                          don't use Motif or Xaw3d scroll bars
  --without-xaw3d         don't use Xaw3d
  --without-xim           don't use X11 XIM
  --with-ns               use NeXTstep (Cocoa or GNUstep) windowing system
  --with-w32              use native MS Windows GUI
  --without-gpm           don't use -lgpm for mouse support on a GNU/Linux
                          console
  --without-dbus          don't compile with D-Bus support
  --without-gconf         don't compile with GConf support
  --without-gsettings     don't compile with GSettings support
  --without-selinux       don't compile with SELinux support
  --without-gnutls        don't use -lgnutls for SSL/TLS support
  --without-makeinfo      don't require makeinfo for building manuals
  --without-compress-info don't compress the installed Info pages
  --with-pkg-config-prog=PATH
                          path to pkg-config for finding GTK and librsvg
  --with-crt-dir=DIR      directory containing crtn.o etc. The default is
                          /usr/lib, or /usr/lib64 on some platforms.
  --with-gameuser=USER    user for shared game score files
  --with-gnustep-conf=PATH
                          path to GNUstep.conf; default $GNUSTEP_CONFIG_FILE,
                          or /etc/GNUstep/GNUstep.conf
  --with-x                use the X Window System

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CPP         C preprocessor
  XMKMF       Path to xmkmf, Makefile generator for X Window System

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to the package provider.

Các tùy chọn có tên bắt đầu bằng "enable", "vô hiệu hóa", "với" và "không" kiểm soát chức năng nào được tích hợp trong các tệp nhị phân kết quả và nên được bạn quan tâm chính ở đây.

Gần đây đã xây dựng Emacs 24.3 của riêng tôi, tôi có thể chứng thực rằng quá trình xây dựng rất đơn giản; Nếu bạn hoàn toàn quen thuộc với việc xây dựng phần mềm Linux từ nguồn, bạn sẽ không gặp khó khăn nào ngoài việc có thể cần cài đặt một hoặc hai thư viện và nếu bạn không quen với quy trình này, thì đây là một nơi tốt để bắt đầu tìm hiểu về nó


Cảm ơn! Tôi đã bắt đầu điều này, nhưng vấn đề là tôi cần các thư viện xdevelopment và điều này liên quan đến rất nhiều tệp mà tôi sẽ không thoát khỏi sau đó. Có vẻ như tôi cần một hộp ảo để biên dịch và sau đó chuyển mọi thứ sang hộp khác để cài đặt ...
Stefan Müller

@ StefanMüller Nếu bạn muốn một Emacs chỉ dành cho thiết bị đầu cuối, không liên kết với bất kỳ thư viện X nào, bạn có thể lấy một cái bằng cách nối thêm --with-x=novào configurelời gọi. Mặt khác, nếu bạn muốn một Emacs có thể hiển thị các cửa sổ của chính nó trên máy chủ X của bạn, bạn sẽ cần các thư viện X được cài đặt trên bất kỳ máy nào cuối cùng sẽ lưu trữ Emacs của bạn.
Aaron Miller
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.