Скомпілювати gvim з джерел?


11

Нещодавно я встановив vimтак:

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

Отже, бінарні файли мого VIM зараз живуть /opt/vim/bin. Ось ls -laцей рейтинг:

$ 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

Де мій vim.gtk? Я вказав --enable-gui=gtk2у налаштуваннях. Чи не повинен він сказати, що інсталятор Я хочу версію графічного інтерфейсу, а також консольну програму?

Я вказав gtkверсію правильно:

$ 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

ОНОВЛЕННЯ : Це написано на 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.

Тому я намагався не вказувати, --enable-guiсподіваючись, що він знайде, який двигун / інструментарій GUI використовувати самостійно ... Все-таки результат :(

ОНОВЛЕННЯ : Крім того:

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

ОНОВЛЕННЯ :

Чи потрібно мені ВСЕ з цього:

$ 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

Схоже, більшість пакунків, які мені не потрібні. Наприклад, фреймворки для мобільних додатків, ... HTML-рендері тощо. Я встановив це libgtk2.0-dev... Все-таки я не можу компілювати gVIM....


Чому ти робиш "sudo ./configure [...]"? Сценарій налаштування не потрібно запускати як root. Я можу зрозуміти, як робити "sudo make isntall", хоча вам не потрібно робити "make install", а потім "make install чистим", як це було б встановити Vim двічі - просто "make install; make clean".
Гептит

Вам не потрібно встановлювати купу випадкових файлів розробників. Якщо сценарій налаштування не може знайти потрібні йому бібліотеки, він відмовиться виводити makefile. . Здається, ваша проблема configureсама по собі. Я перевірив би config.logі побачив, як він обробляє --enable-guiваріант тощо.
jpaugh

Відповіді:


7

У мене була подібна проблема встановлення gvim 7.3 на Centos 6.2 (x86_64)

Деякі необхідні пакети для розробки були відсутні. Щоб встановити їх:

yum groupinstall "Desktop Platform Development"

[Для перегляду всіх доступних груп: yum grouplist]

Тоді будівля з джерела тільки працювала

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

Щоб дізнатися, які файли були відсутні:

./configure | less

і пошук "gui" показав, що заголовки X11 відсутні.


3

У ubuntu я компілюю vim наступним чином:

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

На даний момент, cd srcі перевірити правильність підтримки X11 і буфер обміну: ./vim --version. Потім:

sudo make install

Для Fedora (на робочому столі KDE) я встановив такі пакети:

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

І змінив мою команду настройки на таке:

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

Після цього я отримую наступне:

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: Забув зазначити, що для Fedora я отримував помилку з розташуванням xsubppсценарію perl, тому я змінив Makefile завдяки звіту про помилки в Інтернеті.

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

Ви можете використовувати таку команду, щоб знайти необхідні залежності для gvim:

sudo apt-get build-dep vim

Якщо ви не додали джерело сховища у файл source.list у / etc / apt /, ви можете відкрити цей файл, дублювати записи всередині та змінити "dep" на "dep-src".

Після встановлення всіх залежностей ви зможете скласти vim з gui.


1

Це схоже на випадок недостатнього *-develвстановлення пакетів. Спробуйте встановити всі пакети розробки. Я думаю, що існує мета-пакет для встановлення більшості з них. Спробуйте gnome-devel. Вибачте, що зараз у мене немає Ubuntu.

Щоб компілювати різні варіанти vim (наприклад, GUI та non-GUI), вам доведеться конфігурувати / компілювати його кілька разів.


У системах, схожих на Unix, немає причин будувати окремі версії GUI та не-GUI. А «нормальна» сборка и установка створить один двійковий файл з ім'ям , vimдо якого всім іншим формам Vim-- gvim, view, exі т.д. .-- пов'язані між собою . Вім знає, яку особистість прийняти, виходячи з імені, яким її викликали.
garyjohn

Ти маєш рацію, не треба . Але в більшості дистрибутивів є окремі версії для варіантів GUI та не-GUI, які доступні в різних двійкових пакетах. Щось на кшталт а minimalта full featuredверсії. ОП, здавалося, хотів би також зробити це.
Кіт

Я на KDE, тому в мене фактично є K Ubuntu
Немоден

З цього приводу я погоджуюся з Кітом, що, схоже, вам не вистачає якихось програмних пакетів. Існує команда apt-get, яка встановить залежності побудови визначеної цілі, але наразі у мене не зручна система Ubuntu.
garyjohn

1
Незважаючи на це, ви хотіли збільшити gtk + GUI, тому вам знадобляться всі встановлені пакунки gtk devel. gnome-devel - це мета-пакет, який витягне їх. Вони можуть бути меншими, специфічними для gtk. Але я зараз не можу перевірити.
Кіт

1

Я також не зміг побудувати vim73 з опцією enable-gui на RHEL6.1 через відсутність X11 / Intrinsic.h . У вашого Linux був включений файл? Якщо ні, ви можете отримати його з, напевно, пакету libxt-dev .


0

Слідкуйте за результатами, коли ви збираєте vim. Я сам не скомпілював vim, але я впевнений, що будуть деякі попередження / помилки щодо відсутніх файлів, необхідних для gvim.


На жаль, коли він каже вам, що вам щось не вистачає, він не говорить вам, який пакунок надає це або як називається бібліотека, що надає, тому вам потрібно дати трохи більше, ніж це.
DavidG
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.