Come fornire un suffisso a Vim 8 quando si costruisce su Linux


2

Sto cercando di costruire Vim 8.0 su Ubuntu 16.04.1 LTS. configure e make corri senza errori, tuttavia ignora il parametro --program-suffix:

[local vim repo]/configure --program-suffix=8 --with-features=big

Intendevo costruire Vim 8.0 parallelamente alla mia configurazione stabile con il suffisso "8", quindi dovrebbe esserci un binario vim8 nel /usr/local/bin/.

Qualche idea?

Risposte:


2

Ho confermato questo comportamento su CentOS 7.2 con un pull dal vim repo oggi (ver 8.0.3); il valore da --program-suffix non è stato memorizzato È un campo nel file src/auto/configure e dopo aver corso ./configure dovrebbe compilare un campo in src/config.mk ma non c'è un segnaposto per questo. Gli altri flag di configurazione forniti a configure fare aggiornamento src/config.mk

C'è una nota nel file src/INSTALL sull'argomento:

Se il pacchetto lo supporta, è possibile installare i programmi   con un prefisso o suffisso aggiuntivo sul loro nome dando configure l'opzione --program-prefix=PREFIX o --program-suffix=SUFFIX

Immagino che ignorare l'argomento e non riportarlo sia come gli sviluppatori di Vim hanno deciso di non supportare questa opzione nel ramo principale.

Per evitare potenzialmente di sovrascrivere i file dall'installazione 7.x, suggerisco di installarlo completamente in un'altra directory fino a quando non si esegue la transizione completa; se si combina questa opzione con la rinomina di vim usando il flag suggerito da @pibarnas, è possibile isolare completamente l'installazione di vim8 dall'installazione esistente.

 ./configure --with-features=big --prefix=$HOME --with-vim-name=vim8

Cambia $ HOME in qualunque percorso funzioni per te; quello che suggerisco è che dopo l'installazione si creano i collegamenti simbolici da $ HOME / bin / a / usr / local / sbin /

sudo ln -s /home/<username>/bin/vim8 /usr/local/bin/

Puoi fare lo stesso con i relativi eseguibili vim a seconda di cosa costruisci. Alcuni di loro non accettano il nome-vim fornito nella configurazione, che è un'altra ragione per usare solo una directory di installazione separata.

Per la cronaca, ecco i binari installati da vim. Ho usato diversi argomenti di configurazione; L'ho postato in fondo - nel caso in cui nel tentativo di riprodurre il comando precedente non funzioni per qualche oscuro motivo; sotto è quello che ho effettivamente usato.

-rwxr-xr-x 1 root   root    143 Sep 12 23:04 gvim8tutor
-rwxr-xr-x 1 root   root    19K Sep 12 23:04 xxd
lrwxrwxrwx 1 root   root      4 Sep 12 23:04 vim8diff -> vim8
lrwxrwxrwx 1 root   root      4 Sep 12 23:04 rview -> vim8
lrwxrwxrwx 1 root   root      4 Sep 12 23:04 rvim8 -> vim8
lrwxrwxrwx 1 root   root      4 Sep 12 23:04 view -> vim8
lrwxrwxrwx 1 root   root      4 Sep 12 23:04 ex -> vim8
lrwxrwxrwx 1 root   root      4 Sep 12 23:04 gvim8diff -> vim8
lrwxrwxrwx 1 root   root      4 Sep 12 23:04 eview -> vim8
lrwxrwxrwx 1 root   root      4 Sep 12 23:04 evim8 -> vim8
lrwxrwxrwx 1 root   root      4 Sep 12 23:04 rgview -> vim8
lrwxrwxrwx 1 root   root      4 Sep 12 23:04 rgvim8 -> vim8
lrwxrwxrwx 1 root   root      4 Sep 12 23:04 gview -> vim8
lrwxrwxrwx 1 root   root      4 Sep 12 23:04 gvim8 -> vim8
-rwxr-xr-x 1 root   root   2.1K Sep 12 23:04 vim8tutor
-rwxr-xr-x 1 root   root   2.7M Sep 12 23:04 vim8

Comando Vim config / build / install:

./configure --prefix=$HOME --with-vim-name=vim8 --with-compiledby="argonauts12" --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 --disable-multibyte && make -j8 && make install

1

Di conseguenza ./config --help:

--with-vim-name = NOME come chiamare l'eseguibile di Vim

Nel caso:

--with-vim-name = vim8

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.