Skompilować gvim ze źródeł?


12

Ostatnio zainstalowałem vimtak:

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

Pliki binarne mojego VIM-a działają teraz pod /opt/vim/bin. Oto ls -laten reż:

$ 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

Gdzie jest moja vim.gtk? Podałem --enable-gui=gtk2w konfiguracji. Czy nie powinno to oznaczać, że instalator chce wersji GUI, a także aplikacji konsolowej?

Podałem gtkpoprawnie wersję:

$ 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

AKTUALIZACJA : Jest napisany na 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.

Próbowałem więc nie określać, --enable-guimając nadzieję, że znajdzie silnik GUI / zestaw narzędzi do samodzielnego użycia ... Nadal ten sam wynik :(

AKTUALIZACJA : Ponadto:

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

AKTUALIZACJA :

Czy potrzebuję tego wszystkiego:

$ 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

Wygląda na większość tych pakietów, których nie potrzebuję. Np. Frameworki dla aplikacji mobilnych, ... renderery HTML itp. Zainstalowałem libgtk2.0-dev... Ciągle nie mogę skompilować gVIM... Agrhhhhh


Dlaczego robisz „sudo ./configure [...]”? Skrypt konfiguracyjny nie powinien być uruchamiany jako root. Rozumiem robienie „sudo make isntall”, chociaż nie musisz robić „make install”, a następnie „make install clean”, ponieważ to instalowałoby Vima dwa razy - po prostu „make install; make clean”.
Heptyt

Nie powinieneś instalować wielu losowych plików deweloperskich. Jeśli skrypt konfiguracyjny nie może znaleźć potrzebnych bibliotek, odmówi wyprowadzenia pliku makefile. . Wygląda na to, że Twój problem dotyczy configuresamego siebie. Chciałbym sprawdzić config.logi zobaczyć, jak to się obsługuje --enable-guiopcję, itp
jpaugh

Odpowiedzi:


7

Miałem podobny problem z instalacją gvima 7.3 na Centos 6.2 (x86_64)

Brakowało niektórych wymaganych pakietów deweloperskich. Aby je zainstalować:

yum groupinstall "Desktop Platform Development"

[Aby wyświetlić wszystkie dostępne grupy: yum grouplist]

Następnie budynek ze źródła właśnie działał

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

Aby odkryć brakujące pliki:

./configure | less

a wyszukiwanie „gui” wykazało brak nagłówków związanych z X11.


4

W Ubuntu kompiluję vim w następujący sposób:

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

W tym momencie, cd srci sprawdzić prawidłowe wsparcie X11 i Schowek: ./vim --version. Następnie:

sudo make install

Dla Fedory (używając pulpitu KDE) zainstalowałem następujące pakiety:

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

I zmieniłem moje polecenie konfiguracji na następujące:

./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

Następnie otrzymuję:

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 ...>

EDYCJA: Zapomniałem wspomnieć, że w Fedorze miałem błąd z lokalizacją xsubppskryptu perl, więc skończyłem modyfikować Makefile dzięki niektórym raportom o błędach 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

Możesz użyć następującego polecenia, aby znaleźć niezbędne zależności dla gvim:

sudo apt-get build-dep vim

Jeśli nie dodałeś repozytorium źródłowego do pliku source.list w / etc / apt /, możesz otworzyć ten plik, zduplikować wpisy w nim i zmienić „dep” na „dep-src”.

Po zainstalowaniu wszystkich zależności będziesz mógł skompilować vima z GUI.


1

Wygląda to na przypadek niewystarczającej liczby *-develzainstalowanych pakietów. Spróbuj zainstalować wszystkie pakiety devel. Myślę, że istnieje meta-pakiet do instalacji większości z nich. Spróbować gnome-devel. Niestety nie mam teraz w pobliżu Ubuntu.

Aby skompilować różne warianty vima (np. GUI i inne niż GUI), musisz go skonfigurować / skompilować wiele razy.


W systemach uniksowych nie ma powodu, aby budować osobne wersje GUI i wersje inne niż GUI. A „normalny” budować i instalować utworzy pojedynczy plik binarny o nazwie vim, do którego wszystkie inne formy Vim-- gvim, view, exitd .-- są połączone. Vim wie, którą osobowość przyjąć, na podstawie nazwy, z której został przywołany.
garyjohn

Masz rację, nie musisz . Ale większość dystrybucji ma osobne wersje dla GUI i wariantów innych niż GUI, dostępne w różnych pakietach binarnych. Coś jak a minimali full featuredwersja. Wydawało się, że OP również chce to zrobić.
Keith


To powiedziawszy, zgadzam się z Keith, że wygląda na to, że brakuje ci niektórych pakietów programistycznych. Istnieje polecenie apt-get, które zainstaluje zależności kompilacji określonego celu, ale w tej chwili nie mam też systemu Ubuntu.
garyjohn

1
Mimo to chciałeś kompilacji GUK gtk +, więc będziesz potrzebował wszystkich zainstalowanych pakietów devel GTk. gnome-devel jest pakietem meta, który je ściągnie. Mogą być mniejsze, specyficzne dla GTK. Ale nie mogę teraz sprawdzić.
Keith

1

Nie udało mi się również zbudować vim73 z opcją enable-gui na RHEL6.1 z powodu braku X11 / Intrinsic.h . Czy twój Linux miał plik dołączania? Jeśli nie, możesz pobrać go z pakietu libxt-dev .


0

Obserwuj wynik podczas kompilacji vima. Sam nie skompilowałem vima, ale jestem pewien, że będą pewne ostrzeżenia / błędy dotyczące brakujących plików potrzebnych dla gvima.


Niestety, gdy mówi ci, że czegoś brakuje, nie mówi ci, który pakiet to zapewnia lub jak nazywa się biblioteka udostępniająca, dlatego musisz podać nieco więcej.
DavidG
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.