소스에서 gvim을 컴파일 하시겠습니까?


12

최근에 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

내 어 is 어 vim.gtk? --enable-gui=gtk2configure에서 지정 했습니다. 설치 프로그램이 콘솔 응용 프로그램뿐만 아니라 GUI 버전을 원한다고 말해서는 안됩니까?

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


왜 "sudo ./configure [...]"를하고 있습니까? configure 스크립트는 루트로 실행할 필요가 없습니다. "sudo make isntall"을 수행하는 것을 이해할 수 있습니다. "make install"을 수행 한 다음 "make install clean"을하지 않아도 Vim을 두 번 설치할 수 있습니다. "make install; make clean"만하면됩니다.
Heptite

임의의 dev 파일을 설치할 필요는 없습니다. configure 스크립트가 필요한 라이브러리를 찾지 못하면 makefile 출력을 거부합니다. . 문제가 configure그 자체 인 것 같습니다 . 확인 config.log하고 --enable-gui옵션 등을 처리하는 방법을 봅니다 .
jpaugh

답변:


7

CentOS 6.2 (x86_64)에 gvim 7.3을 설치하는 데 비슷한 문제가 있습니다.

일부 필수 개발 패키지가 누락되었습니다. 설치하려면 다음을 수행하십시오.

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 관련 헤더가 누락 된 것으로 나타났습니다.


4

우분투 에서는 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

들어 페도라 (KDE 데스크탑을 사용하여) 나는 다음과 같은 패키지를 설치 :

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

그리고 configure 명령을 다음과 같이 변경했습니다.

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

편집 : Fedora 의 경우 xsubppperl 스크립트 의 위치에 오류가 발생하여 온라인에서 일부 버그 보고서 덕분에 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

/ etc / apt /의 source.list 파일에 소스 저장소를 추가하지 않은 경우이 파일을 열고 내부 항목을 복제 한 다음 "dep"를 "dep-src"로 변경할 수 있습니다.

모든 종속성이 설치되면 gui를 사용하여 vim을 컴파일 할 수 있습니다.


1

*-devel패키지 가 충분하지 않은 경우입니다 . 모든 개발 패키지를 설치하십시오. 나는 그것들의 대부분을 설치하기위한 메타 패키지가 있다고 생각합니다. 시도하십시오 gnome-devel. 근처에 우분투가 없습니다.

vim의 다른 변형 (예 : GUI 및 비 GUI)을 컴파일하려면 여러 번 구성 / 컴파일해야합니다.


유닉스 계열 시스템에서는 별도의 GUI 버전과 비 GUI 버전을 빌드 할 이유가 없습니다. 와이라는 단일 바이너리 생성합니다 설치 A "정상적인"빌드 vimVim--의 모든 다른 형태되는 gvim, view, ex, 등이 .- 연결됩니다. Vim은 자신의 이름에 따라 입양 할 성격을 알고 있습니다.
garyjohn

네 말이 맞아, 당신은하지 않습니다 에. 그러나 대부분의 배포판에는 다른 바이너리 패키지로 제공되는 GUI 및 비 GUI 변형에 대한 별도의 빌드가 있습니다. a minimalfull featured버전 같은 것 . OP도 그렇게하고 싶었습니다.
Keith

실제로이있어 그래서 나는, KDE에있어 K 우분투
Nemoden

즉, 일부 개발 패키지가없는 것처럼 Keith에 동의합니다. 지정된 대상의 빌드 종속성을 설치하는 apt-get 명령이 있지만 현재로서는 우분투 시스템이 없습니다.
garyjohn

1
그럼에도 불구하고 gtk + GUI 빌드를 원했기 때문에 모든 gtk devel 패키지가 설치되어 있어야합니다. gnome-devel은 그것들을 끌어들이는 메타 패키지입니다. 그것들은 더 작고 gtk에 특정한 것일 수 있습니다. 하지만 지금은 확인할 수 없습니다.
Keith

1

또한 X11 / Intrinsic.h 부족으로 인해 RHEL6.1에서 enable-gui 옵션으로 vim73을 빌드하지 못했습니다 . 리눅스에 포함 파일이 있습니까? 그렇지 않다면 libxt-dev 패키지 에서 얻을 수 있습니다 .


0

vim을 컴파일 할 때 출력을보십시오. vim을 직접 컴파일하지는 않았지만 gvim에 필요한 파일이 누락되었다는 경고 / 오류가있을 것이라고 확신합니다.


불행히도 당신이 무언가를 놓쳤다 고 말할 때 어떤 패키지가 그것을 제공하는지 또는 제공 라이브러리의 이름을 알려주지 않기 때문에 그보다 조금 더 주어야합니다.
DavidG
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.