รวบรวม 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

/opt/vim/binดังนั้นภายใต้ไบนารี VIM ของฉันตอนนี้สด นี่คือls -ladir นี้:

$ 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ในการกำหนดค่า ไม่ควรพูดว่าตัวติดตั้งที่ฉันต้องการทั้งเวอร์ชัน 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 / ติดตั้ง

 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 [... ]" สคริปต์การกำหนดค่าไม่จำเป็นต้องถูกเรียกใช้ในฐานะรูท ฉันสามารถเข้าใจการทำ "sudo make isntall" แม้ว่าคุณไม่จำเป็นต้องทำ "ทำการติดตั้ง" จากนั้น "ทำการติดตั้งใหม่ทั้งหมด" เนื่องจากจะทำการติดตั้ง Vim สองครั้ง - เพียงแค่ "ทำการติดตั้งทำให้สะอาด"
Heptite

คุณไม่จำเป็นต้องติดตั้งไฟล์ dev แบบสุ่มจำนวนมาก หากสคริปต์กำหนดค่าไม่สามารถค้นหาไลบรารีที่ต้องการได้สคริปต์จะปฏิเสธไม่ให้สร้างไฟล์ makefile . ดูเหมือนว่าปัญหาของคุณจะอยู่กับconfigureตัวเอง ฉันจะตรวจสอบconfig.logและดูว่ามันจัดการกับ--enable-guiตัวเลือกอื่น ๆ อย่างไร
jpaugh

คำตอบ:


7

ฉันมีปัญหาคล้ายกันในการติดตั้ง gvim 7.3 ไปยัง Centos 6.2 (x86_64)

แพ็คเกจ devel ที่จำเป็นบางอย่างขาดหายไป วิธีติดตั้ง:

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

ในUbuntuฉันรวบรวมเป็นกลุ่มด้วยวิธีต่อไปนี้:

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 ของฉันเป็นดังต่อไปนี้:

./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ฉันได้รับข้อผิดพลาดกับที่ตั้งของ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"

หลังจากติดตั้งการพึ่งพาทั้งหมดแล้วคุณจะสามารถคอมไพล์เป็นกลุ่มด้วย gui


1

ดูเหมือนว่ากรณีที่*-develติดตั้งแพ็กเกจไม่เพียงพอ ลองติดตั้งแพ็คเกจ devel ทั้งหมด ฉันคิดว่ามี meta-package สำหรับการติดตั้งส่วนใหญ่ ลองgnome-develดู ขออภัยฉันไม่มี Ubuntu ในบริเวณใกล้เคียงตอนนี้

ในการรวบรวมตัวแปรต่าง ๆ ของ vim (เช่น GUI และไม่ใช่ GUI) คุณต้องกำหนดค่า / คอมไพล์หลายครั้ง


บนระบบที่เหมือน Unix ไม่มีเหตุผลที่จะสร้าง GUI แยกต่างหากและไม่ใช่ GUI "ปกติ" การสร้างและติดตั้งจะสร้างไบนารีเดียวชื่อvimที่ทุกรูปแบบอื่น ๆ ของ Vim-- gvim, view, exฯลฯ .-- มีการเชื่อมโยง Vim รู้บุคลิกภาพที่จะนำมาใช้โดยยึดตามชื่อที่ถูกเรียกใช้
garyjohn

คุณพูดถูกคุณไม่จำเป็นต้องทำ แต่ distros ส่วนใหญ่จะมี builds แยกต่างหากสำหรับ GUI และรุ่นที่ไม่ใช่ GUI ซึ่งมีอยู่ในแพ็คเกจไบนารีที่ต่างกัน บางอย่างเช่นminimalและfull featuredรุ่น OP ดูเหมือนจะต้องการทำเช่นนั้น
Keith

ฉันใช้ KDE ดังนั้นฉันจึงมีK Ubuntu
Nemoden

ที่กล่าวว่าฉันเห็นด้วยกับคี ธ ดูเหมือนว่าคุณขาดแพคเกจการพัฒนาบางอย่าง มีคำสั่ง apt-get ที่จะติดตั้ง build dependencies ของเป้าหมายที่ระบุ แต่ฉันไม่มีระบบ Ubuntu ที่สะดวกในขณะนี้
garyjohn

1
ถึงกระนั้นคุณต้องการสร้าง gtk + GUI ดังนั้นคุณจะต้องติดตั้งแพ็คเกจ gtk devel ทั้งหมด gnome-devel เป็นแพ็คเกจเมตาที่จะดึงพวกเขามาพวกเขาอาจจะเล็กกว่า gtk ที่เฉพาะเจาะจง แต่ตอนนี้ฉันไม่สามารถตรวจสอบได้
Keith

1

ฉันยังล้มเหลวในการสร้าง vim73 กับตัวเลือก enable-GUI บน RHEL6.1 เนื่องจากการขาดการX11 / Intrinsic.h ลินุกซ์ของคุณมีไฟล์รวมอยู่ด้วยหรือไม่ ถ้าไม่ได้คุณสามารถได้รับจากผมเดาlibxt-devแพคเกจ


0

ดูผลลัพธ์เมื่อคุณกำลังรวบรวมเป็นกลุ่ม ฉันไม่ได้คอมไพล์เป็นกลุ่ม แต่ฉันค่อนข้างมั่นใจว่าจะมีคำเตือน / ข้อผิดพลาดเกี่ยวกับไฟล์ที่ขาดหายไปที่จำเป็นสำหรับ gvim


น่าเสียดายที่มันบอกคุณว่าคุณขาดอะไรบางอย่างมันไม่ได้บอกคุณว่าแพ็คเกจใดที่ให้นั่นหรือชื่อของห้องสมุดที่ให้บริการนั่นคือสาเหตุที่คุณต้องให้มากกว่านั้น
DavidG
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.