A maneira de criar um binário vinculado estaticamente é passar a opção -static
para o vinculador. Como você não executa o vinculador diretamente, você precisará fazer isso através do sistema de compilação (e provavelmente também através do compilador).
O Emacs é um pacote GNU, então provavelmente usa o autotools para sua compilação. Nesse caso, você precisa usar a variável LDFLAGS
:
./configure LDFLAGS="-static"
Infelizmente, ao tentar fazer isso, descobri que o emacs usa um número de chamadas de função glibc
que não funcionam em binários estáticos; e o "bootstrap-emacs", que é construído como parte do mesmo, irá se separar da inicialização por causa disso. Então você não pode fazer isso com uma construção estática.
Em vez disso, você pode seguir um destes procedimentos:
- Você configura um chroot do CentOS na sua máquina Debian na qual você compila e depois copia os binários para o chroot do CentOS
-
Você pode criar um pacote de autotools com um prefixo alternativo, para que ele funcione no seu diretório inicial:
./configure --prefix=$HOME/emacs --exec-prefix=$HOME/bin
Isto irá compilar o emacs para que seja instalado em
$HOME/bin
, com qualquer arquivo de suporte encontrado em$HOME/emacs
. Claro, isso pressupõe que as bibliotecas necessárias estão disponíveis na máquina do CentOS, o que pode não ser o caso. - Você pode apenas pedir sua raiz local para instalar o emacs para você ...