Compilare gvim da fonti?


12

Di recente, ho installato in questo vimmodo:

hg clone https://vim.googlecode.com/hg/ vim
cd vim
sudo ./configure --enable-rubyinterp=yes --enable-pythoninterp=yes --enable-gui=gtk2 --prefix=/opt/vim
make 
make install
make install clean

Quindi, i binari del mio VIM ora vivono sotto /opt/vim/bin. Ecco ls -ladi questo dir:

$ ls -la /opt/vim/bin
total 1500
drwxr-xr-x 2 root root    4096 2011-05-25 12:46 .
drwxr-xr-x 4 root root    4096 2011-05-25 12:46 ..
lrwxrwxrwx 1 root root       3 2011-05-25 12:46 ex -> vim
lrwxrwxrwx 1 root root       3 2011-05-25 12:46 rview -> vim
lrwxrwxrwx 1 root root       3 2011-05-25 12:46 rvim -> vim
lrwxrwxrwx 1 root root       3 2011-05-25 12:46 view -> vim
-rwxr-xr-x 1 root root 1504188 2011-05-25 12:46 vim
lrwxrwxrwx 1 root root       3 2011-05-25 12:46 vimdiff -> vim
-rwxr-xr-x 1 root root    2084 2011-05-25 12:46 vimtutor
-rwxr-xr-x 1 root root   13900 2011-05-25 12:46 xxd

Dov'è il mio vim.gtk? Ho specificato --enable-gui=gtk2in configura. Non dovrebbe dire al programma di installazione che desidero una versione della GUI e un'applicazione console?

Ho specificato gtkcorrettamente la versione:

$ dpkg -l libgtk[0-9]* | grep ^i
ii  libgtk2-perl                          1:1.221-4                                  Perl interface to the 2.x series of the Gimp Toolkit library
ii  libgtk2.0-0                           2.18.3-1ubuntu2.2                          The GTK+ graphical user interface library
ii  libgtk2.0-bin                         2.18.3-1ubuntu2.2                          The programs for the GTK+ graphical user interface library
ii  libgtk2.0-common                      2.18.3-1ubuntu2.2                          Common files for the GTK+ graphical user interface library

AGGIORNAMENTO : è scritto su src / INSTALL

 88 Unix: COMPILING WITH/WITHOUT GUI
 89
 90 NOTE: This is incomplete, look in Makefile for more info.
 91
 92 These configure arguments can be used to select which GUI to use:
 93 --enable-gui=gtk      or: gtk2, motif, athena or auto
 94 --disable-gtk-check
 95 --disable-motif-check
 96 --disable-athena-check
 97
 98 --enable-gui defaults to "auto", so it will automatically look for a GUI (in
 99 the order of GTK, Motif, then Athena).  If one is found, then is uses it and
100 does not proceed to check any of the remaining ones.  Otherwise, it moves on
101 to the next one.

Quindi ho cercato di non specificare --enable-guisperando che troverà quale motore della GUI / toolkit usare da solo ... Sempre lo stesso risultato :(

AGGIORNAMENTO : Inoltre:

/opt/vim/bin$ ./vim -g
E25: GUI cannot be used: Not enabled at compile time

AGGIORNAMENTO :

Ho bisogno di TUTTO questo:

$ sudo aptitude search gtk | grep dev
p   gnunet-gtk-dev                  - secure, trust-based peer-to-peer framework
v   gtkgl-dev                       -                                           
p   gtkparasite                     - GTK+ debugging and development tool       
p   libaiksaurusgtk-1.2-dev         - graphical interface to the Aiksaurus toolk
v   libaiksaurusgtk-dev             -                                           
p   libcanberra-gtk-dev             - a simple abstract interface for playing ev
p   libchamplain-gtk-0.4-dev        - A Gtk+ widget to display maps (development
p   libclutter-gtk-0.10-dev         - Open GL based interactive canvas library G
p   libdbusmenu-gtk-dev             - Menus over DBus shared library for GTK    
p   libempathy-gtk-dev              - High-level library and user-interface for 
v   libequeue-gtk2-ocaml-dev        -                                           
p   libexif-gtk-dev                 - Library providing GTK+ widgets to display/
p   libgalago-gtk-dev               - libraries and header files for developing 
p   libgdu-gtk-dev                  - GTK+ standard dialog library for libgdu - 
p   libggadget-gtk-1.0-dev          - Google Gadgets GTK+ development files     
p   libggz-gtk-dev                  - GGZ Gaming Zone: core client embedding lib
p   libghc6-gtk-dev                 - A GUI library for Haskell (Gtk2Hs) -- GTK+
p   libghc6-gtkglext-dev            - A GUI library for Haskell (Gtk2Hs) -- gtkg
p   libghc6-gtksourceview2-dev      - A GUI library for Haskell (Gtk2Hs) -- GtkS
p   libghc6-soegtk-dev              - A GUI library for Haskell (Gtk2Hs) -- soeg
p   libglrr-gtk-dev                 - Development library of Grift (gtk)        
p   libgpod-nogtk-dev               - development files for libgpod (version wit
p   libgtk-directfb-2.0-dev         - Development files for the GTK+ library - D
p   libgtk-vnc-1.0-dev              - A VNC viewer widget for GTK+ (development
i   libgtk2.0-dev                   - Development files for the GTK+ library
p   libgtkada2-dev                  - Development files for libgtkada2
p   libgtkdatabox-0.9.0-1-dev       - A Gtk+ library to display large amounts of
v   libgtkdatabox-dev               -
p   libgtkextra-x11-2.0-dev         - A useful set of widgets for GTK+ (developm
p   libgtkgl2.0-dev                 - OpenGL area for GTK (development files)
p   libgtkglext1-dev                - OpenGL Extension to GTK+ (development file
p   libgtkglextmm-x11-1.2-dev       - C++ bindings for GtkGLExt (Development fil
p   libgtkhex0-dev                  - GNOME Hex editor for files (development he
p   libgtkhtml-editor-dev           - HTML rendering/editing library - editor wi
p   libgtkhtml2-dev                 - HTML rendering/editing library - developme
p   libgtkhtml3.14-dev              - HTML rendering/editing library - developme
p   libgtkhtml3.8-dev               - HTML rendering/editing library - developme
p   libgtkimageview-dev             - image viewer widget for GTK+ (development
p   libgtkmathview-dev              - rendering engine for MathML documents
p   libgtkmm-2.4-dev                - C++ wrappers for GTK+ 2.4 (development fil
p   libgtkmm-utils-dev              - utility functions, classes and widgets wri
p   libgtksourceview-dev            - development files for the GTK+ syntax high
p   libgtksourceview2.0-dev         - development files for the GTK+ syntax high
p   libgtksourceviewmm-1.0-dev      - C++ binding of GtkSourceView - development
p   libgtksourceviewmm-2.0-dev      - C++ binding of GtkSourceView - development
p   libgtkspell-dev                 - Development files for GtkSpell
p   libindicate-gtk-dev             - GNOME panel indicator applet - shared libr
p   libjana-gtk-dev                 - A set of GTK+ widgets to visualise libjana
p   liblablgtk2-gl-ocaml-dev        - OCaml bindings to GtkGL
p   liblablgtk2-gnome-ocaml-dev     - OCaml bindings to GNOME
p   liblablgtk2-ocaml-dev           - OCaml bindings to Gtk+ version 2
p   liblablgtkmathview-ocaml-dev    - OCaml bindings for libgtkmathview, a GTK w
p   liblablgtksourceview-ocaml-dev  - OCaml bindings for libgtksourceview, a sou
v   libnotify-dev-gtk2.10           -
p   libocamlnet-gtk2-ocaml-dev      - OCaml application-level Internet libraries
p   libpolkit-gtk-1-dev             - PolicyKit GTK+ API - development files
v   libsylpheed-claws-gtk2-dev      -
p   libtinymailui-gtk-dev           - Framework for mobile applications with e-m
p   libtinymailui-gtkhtml-dev       - Framework for mobile applications with e-m
p   libtracker-gtk-dev              - GTK+ widgets for apps that use tracker - d
v   libunicapgtk-dev                -
p   libunicapgtk2-dev               - graphical widgets for unicap - development
p   libwxgtk2.6-dev                 - wxWidgets Cross-platform C++ GUI toolkit (
p   libwxgtk2.8-dev                 - wxWidgets Cross-platform C++ GUI toolkit (
p   libzbargtk-dev                  - scanning and decoding bar codes (GTK+ bind
p   python-galago-gtk-dev           - Galago presence library (Python interface)
p   python-gtk2-dev                 - GTK+ bindings: devel files
p   telepathy-devel-gtk             - Telepathy Development packages for GTK

Sembra che la maggior parte dei pacchetti di cui non ho bisogno. Ad esempio Frame per app mobili, ... renderer HTML, ecc. Quello che ho installato è libgtk2.0-dev... Tuttavia, non riesco a compilare gVIM.... Agrhhhhh


Perché stai facendo "sudo ./configure [...]"? Lo script di configurazione non deve essere eseguito come root. Posso capire facendo "sudo make isntall", anche se non è necessario eseguire "make install" e quindi "make clean clean", in quanto installerebbe Vim due volte: basta fare "make install; make clean".
Heptite,

Non dovresti aver bisogno di installare un mucchio di file dev casuali. Se lo script di configurazione non riesce a trovare le librerie di cui ha bisogno, rifiuterà di produrre un makefile. . Sembra che il tuo problema sia con configurese stesso. Controllerei config.loge --enable-gui
vedrei

Risposte:


7

Ho avuto un problema simile durante l'installazione di gvim 7.3 su Centos 6.2 (x86_64)

Mancavano alcuni pacchetti di sviluppo richiesti. Per installarli:

yum groupinstall "Desktop Platform Development"

[Per visualizzare tutti i gruppi disponibili: yum grouplist]

Quindi la costruzione dalla fonte ha appena funzionato

wget ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
bunzip2 vim-7.3.tar.bz2
tar xf vim-7.3.tar
cd vim73

./configure --prefix=/home/me/vim73
make
make install

Per scoprire quali file mancavano:

./configure | less

e la ricerca di "gui" ha dimostrato che mancavano le intestazioni relative all'X11.


4

In Ubuntu compilo vim nel modo seguente:

sudo apt-get build-dep vim
sudo apt-get build-dep libx11-dev libxtst-dev

make distclean

./configure --with-compiledby="David Gamba <davidgamba@gambaeng.com>" \
--with-features=huge \
--enable-gui=auto \
--with-x \
--enable-rubyinterp \
--with-ruby-command=/usr/bin/ruby \
--enable-perlinterp \
--enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config \
--enable-fontset \
--enable-cscope \
--enable-gtk2-check \
--enable-gnome-check

make

A questo punto, cd srce di controllo per il corretto supporto X11 e appunti: ./vim --version. Poi:

sudo make install

Per Fedora (usando il desktop KDE) ho installato i seguenti pacchetti:

yum install gcc libX11-devel libXtst-devel ncurses-devel perl-ExtUtils-Embed ruby ruby-devel python-devel gtk2-devel libXt-devel

E ho cambiato il mio comando configure al seguente:

./configure --with-compiledby="David Gamba <davidgamba@gambaeng.com>" \
--with-features=huge \
--enable-gui=auto \
--with-x \
--enable-rubyinterp \
--with-ruby-command=/usr/bin/ruby \
--enable-perlinterp \
--enable-pythoninterp --with-python-config-dir=/usr/lib64/python2.7/config \
--enable-fontset \
--enable-cscope \
--enable-gtk2-check \
--enable-gnome-check \
--enable-fail-if-missing

Successivamente ottengo quanto segue:

gvim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled May  4 2014 19:43:27)
Included patches: 1-274
Compiled by David Gamba <davidgamba ...>

EDIT: Ho dimenticato di dire che per Fedora stavo ricevendo un errore con la posizione dello xsubppscript perl, quindi ho finito per modificare il Makefile grazie ad alcuni bug report online.

--- a/src/Makefile      Fri May 02 15:46:14 2014 +0200
+++ b/src/Makefile      Sun May 04 19:56:20 2014 -0600
@@ -2465,7 +2465,7 @@

 auto/if_perl.c: if_perl.xs
        $(PERL) -e 'unless ( $$] >= 5.005 ) { for (qw(na defgv errgv)) { print "#define PL_$$_ $$_\n" }}' > $@
-       $(PERL) $(PERLLIB)/ExtUtils/xsubpp -prototypes -typemap \
+       $(PERL) /usr/bin/xsubpp -prototypes -typemap \
            $(PERLLIB)/ExtUtils/typemap if_perl.xs >> $@

  auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in

2

È possibile utilizzare il comando seguente per trovare le dipendenze necessarie per gvim:

sudo apt-get build-dep vim

Se non hai aggiunto il repository di origine nel tuo file source.list in / etc / apt /, puoi aprire questo file, duplicare le voci all'interno e cambiare "dep" in "dep-src".

Dopo aver installato tutte le dipendenze, sarai in grado di compilare vim con gui.


1

Questo sembra il caso di non avere abbastanza *-develpacchetti installati. Prova a installare tutti i pacchetti di sviluppo. Penso che ci sia un meta-pacchetto per installarne la maggior parte. Prova gnome-devel. Mi dispiace non avere Ubuntu nelle vicinanze in questo momento.

Per compilare diverse varianti di vim (ad es. GUI e non-GUI), è necessario configurarlo / compilarlo più volte.


Su sistemi simili a Unix, non vi è alcun motivo per creare versioni separate della GUI e non GUI. Una build "normale" e l'installazione creerà un unico binario chiamato vima cui tutte le altre forme di Vim-- gvim, view, exsono collegate, ecc .--. Vim sa quale personalità adottare in base al nome con cui è stata invocata.
garyjohn,

Hai ragione, non è necessario. Ma la maggior parte delle distribuzioni ha build separate per GUI e varianti non GUI, disponibili in diversi pacchetti binari. Qualcosa come una minimale una full featuredversione. L'OP sembrava voler fare anche questo.
Keith,

Sono su KDE, quindi ho K Ubuntu
Nemoden

Detto questo, concordo con Keith sul fatto che sembra che manchi qualche pacchetto di sviluppo. C'è un comando apt-get che installerà le dipendenze di compilazione di un target specificato, ma al momento non ho nemmeno un sistema Ubuntu a portata di mano.
garyjohn,

1
Anche così, volevi la build di gtk + GUI, quindi avrai bisogno di tutti i pacchetti di sviluppo gtk installati. gnome-devel è un metapacchetto che ne trarrà vantaggio. Potrebbero essere più piccoli, specifici per gtk. Ma non posso controllare ora.
Keith,

1

Inoltre, non sono riuscito a creare vim73 con l'opzione enable-gui su RHEL6.1 a causa della mancanza di X11 / Intrinsic.h . Il tuo Linux aveva il file include? Altrimenti, potresti prenderlo, credo, dal pacchetto libxt-dev .


0

Guarda l'output durante la compilazione di vim. Non ho compilato vim da solo, ma sono abbastanza sicuro che ci saranno alcuni avvisi / errori relativi ai file mancanti necessari per gvim.


Sfortunatamente quando ti dice che ti manca qualcosa non ti dice quale pacchetto fornisce questo o qual è il nome della libreria che fornisce, quindi è per questo che devi dare qualcosa in più.
DavidG,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.