Como construir o mc para o kubuntu sem acesso root?

1

mc (Midnight Commander) no Kubuntu 9.10 (Karmic Koala) tem um problema acessando .zip e outros arquivos como um sistema de arquivos virtual. Tem a ver com um formato alterado da saída de unzip . As discussões oferecem uma solução alternativa, mas isso requer acesso a arquivos do sistema (por exemplo, root ); minha caixa de trabalho está trancada.

Eu tenho Ubuntu (sem o K) 9.10 em casa, e eu baixei o pacote fonte e fiz uma mudança de código que é um hack horrível (eu não sonharia em publicar) que me permitiria rodar minha própria cópia corretamente mc em um subdiretório do meu $HOME . Infelizmente, minha caixa "em casa" está configurada de maneira diferente, tanto em termos de processador (es) quanto do KDE vs. Gnome; um executável mc transferido falha imediatamente com bus error .

Pergunta, então:

Dado

  • uma caixa do Ubuntu eu controlo completamente,
  • não-raiz em uma caixa do KUbuntu que possui make e gcc e algumas outras ferramentas, mas não uma cadeia de ferramentas de desenvolvimento completa, como as que estão abaixo do config
  • capacidade de baixar qualquer pacote que eu precise
  • capacidade de criar e brincar na minha própria árvore $ HOME

como posso construir um mc que será executado na minha caixa Kubuntu bloqueada?

    
por Carl Smotricz 02.03.2010 / 20:42

2 respostas

3

Como o mc é construído com autotools , você pode configurar o pacote de maneira que ele não seja instalar em um sistema, mas um diretório de usuário que é gravável por você. Você faz isso dando opções extras à chamada ./configure que você emite. Para ver todas as opções de construção disponíveis, execute

./configure --help

A mágica aqui é a variável PREFIX usada: ela (aproximadamente) informa ao processo de construção onde todos os seus programas e arquivos de suporte são instalados. Isso pode ser aperfeiçoado ainda mais.

Quando eu construo e instalo como usuário, geralmente instalo em um PREFIX em $HOME/bin/progname.dir , enquanto os executáveis vão diretamente para $HOME/bin , então, no seu caso

./configure --prefix=$HOME/bin/mc.dir --bindir=$HOME/bin

e depois

make install

No seu arquivo .profile , você deve atualizar sua variável $PATH para incluir $HOME/bin/ adicionando uma linha como

export PATH=$HOME/bin:PATH
    
por 02.03.2010 / 20:59
0

Sucesso! Este é o feedback para qualquer pessoa com problemas semelhantes.

Como honk explicado, configure pode ser ajudado com algumas opções. Achei que isso não era o bastante: tive que alterar manualmente os links de ./config/ para config.sub , config.guess , install-sh e missing .

Depois disso, tive muitos problemas ao obter configure para encontrar meu glib 2.0 . Acontece que configure chama chk-config e tem várias maneiras diferentes de encontrar glib , nenhum dos quais funcionou. Olhei manualmente para o material que estava tentando encontrar e descobri que glib-2.0.pc estava realmente disponível. Eu poderia fazer chk-config encontrá-lo apontando PKG_CONFIG_PATH para o diretório que contém todos os arquivos .pc .

Eu escrevi um pequeno script de shell para fornecer configure com todas as variáveis e opções de ambiente necessárias. Aqui está:

#!/bin/bash
my_root=/home/carl/MC
export PKG_CONFIG=$my_root/usr/bin/pkg-config
export PKG_CONFIG_PATH=$my_root/usr/lib/pkgconfig
OPTS=""
OPTS="$OPTS --disable-glibtest"
OPTS="$OPTS --enable-extcharset"
OPTS="$OPTS --enable-netcode"
OPTS="$OPTS --enable-charset"
# OPTS="$OPTS --with-glib-static"
# OPTS="$OPTS --with-glib-12=no"
./configure --prefix=$my_root $OPTS
    
por 04.03.2010 / 11:02