2012-03-13 13 views
10

Estoy intentando construir emacs 24.0.94 con soporte X en un recuadro Suse Linux (versión 10.2 Enterprise) de 64 bits. Veo que las librerías X11 se instalan en// lib/X11R6 usr y yo estoy diciendo la rutina de configuración buscarlos en ese lugar:compilar emacs con soporte X

--x-includes=/usr/X11R6/include:/usr/include --x-libraries=/usr/X11R6/lib64:/usr/lib64 

Incluso con las opciones anteriores, el script de configuración se queja de que no puede encuentre cualquier Xtoolkit:

checking X11 version 6... before 6 
checking for pkg-config... (cached) /usr/bin/pkg-config 
checking for librsvg-2.0 >= 2.11.0... no 
checking for pkg-config... (cached) /usr/bin/pkg-config 
checking for Wand >= 6.2.8... no 
checking for pkg-config... (cached) /usr/bin/pkg-config 
checking for gtk+-2.0 >= 2.10 glib-2.0 >= 2.10... no 
checking for pkg-config... (cached) /usr/bin/pkg-config 
checking for dbus-1 >= 1.0... no 
checking for pkg-config... (cached) /usr/bin/pkg-config 
checking for gio-2.0 >= 2.26... no 
checking for pkg-config... (cached) /usr/bin/pkg-config 
checking for gconf-2.0 >= 2.13... no 
checking for lgetfilecon in -lselinux... no 
checking for pkg-config... (cached) /usr/bin/pkg-config 
checking for gnutls >= 2.6.6... no 
checking for gnutls_certificate_set_verify_function... no 
checking for xaw3d... no 
checking for libXaw... configure: error: No X toolkit could be found. 
If you are sure you want Emacs compiled without an X toolkit, pass 
    --with-x-toolkit=no 
to configure. Otherwise, install the development libraries for the toolkit 
that you want to use (e.g. Gtk+) and re-run configure. 

¿Podría alguien decirme cuál podría ser el problema?

+0

¿Qué kit de herramientas desea utilizar? ¿Lo tienes instalado correctamente? ¿Dónde? Si no sabes, probablemente quieras ir con GTK. – tripleee

+0

Sí, X11 es el nivel más bajo de la funcionalidad de visualización. Para dibujar un paralelo con Windows, piense en ello como los bits de funcionalidad necesarios para manejar controladores de tarjetas gráficas y para pintar blobs en la pantalla. Además de esa capa, necesitas algo que proporcione bibliotecas para botones y menús y todo lo demás que se incluye en una aplicación gráfica, y te falta esa pieza. Gtk + es probablemente el que usted quiere, así como otros han dicho, solo instale gtk2-devel (o como se llame?) Y la compilación debería funcionar. – deong

+0

Gracias. Por favor, consulte mi comentario a continuación sobre la instalación local de emacs/gtk2-devel – Raj

Respuesta

4

En Suse, normalmente querrá compilar Emacs con soporte para GTK, por lo que debe instalar los encabezados GTK junto con los encabezados X (paquete gtk2-devel).

Para compilar Emacs con todas las características modernas que tendrá que instalar los paquetes de desarrollo para los paquetes que no se encuentran en su salida ./configure: rsvg, dbus, gnutls, etc ...

+0

Gracias. Estoy haciendo una instalación local (instalando emacs en mi directorio personal) ya que no tengo privilegios sudo/root en el sistema. ¿Es posible instalar el paquete GTK2-devel localmente y el uso que para la construcción de emacs? – Raj

+0

@Raj Intente descargar el RPM e instálelo localmente. [Aquí hay algunas instrucciones] (http://www.linuxquestions.org/questions/linux-newbie-8/rpm-installation-having-no-root-access-762363/), pero no las probé. – Antoine

+0

@Antoine probablemente tiene la solución más fácil, pero también puede descargar el código fuente de Gtk + e instalarlo de la misma manera ("./configure --prefix =/home/Raj/local"). La ventaja de usar RPM es que debe manejar las dependencias por usted. Con la fuente, deberá asegurarse de instalar cualquier biblioteca requerida por su cuenta.De cualquier manera, probablemente necesite decirle al script de configuración para emacs donde están instaladas las bibliotecas, por lo que algo como "./configure --prefix =/home/Raj/local --with-gtk =/home/Raj/local ". Lea la ayuda de configuración para obtener las banderas correctas. – deong

11

Desde que la semana pasada ahora se puede compilar con GTK3

Aquí está la lista de dependencias para los sistemas basados ​​en Debian:

  • Herramientas:

gcc autoconf automake texinfo git libtool

  • libs:

libncurses5-dev libgnutls-dev librsvg2-dev libxpm-dev libjpeg62-dev libtiff-dev libgif-dev libqt4-dev libgtk-3- dev

(otra forma es utilizar apt-get build-dep emacs23 y añadir gtk3)

y aquí está la secuencia de comandos que utilizo para automatizado se basa en todas mis máquinas:

#!/bin/bash 

init=false 
SRC_DIR=~/src 

if [ ! -d "$SRC_DIR" ]; then mkdir $SRC_DIR; fi 

if [ ! -d "$SRC_DIR/emacs" ]; then 
    init=true 
    cd $SRC_DIR && pwd && git clone git://git.sv.gnu.org/emacs.git && cd emacs 
else 
    cd $SRC_DIR/emacs 
fi 

git pull 1>&1 | grep "Already up-to-date." 
if [[ ! $? -eq 0 && ! $init ]]; then 
    read -e -p "## Branch moved, build and install emacs? [Y/n] " yn 
    if [[ $yn == "y" || $yn == "Y" || $yn == "" ]] ; then 
     make distclean && autoreconf -i -I m4 && ./configure --with-x-toolkit=gtk3 && make && sudo make install 
    fi 
fi 
+1

Gracias por el guión. – Raj

+0

De nada, Raj. Podría ser mejor ; No me gusta cómo me veo obligado a grep la salida de git para determinar si la rama se ha movido. – yPhil

+0

Gran respuesta ... –

Cuestiones relacionadas