Come compilare mc per kubuntu senza accesso root?


1

mc (Midnight Commander) in Kubuntu 9.10 (Karmic Koala) ha problemi di accesso .zipe altri archivi come file system virtuale. Ha a che fare con un formato modificato dell'output di unzip. Le discussioni offrono una soluzione alternativa, ma ciò richiede l' rootaccesso al file di sistema (ovvero ); la mia casella di lavoro è bloccata.

Ho Ubuntu (senza la K) 9.10 a casa, e ho scaricato il pacchetto sorgente e ho fatto una modifica del codice che è un orribile hack (non mi sognerei di pubblicare) che mi avrebbe permesso di eseguire la mia copia correttamente funzionante mcin una sottodirectory del mio $HOME. Purtroppo, la mia casella "a casa" è configurata in modo diverso, sia in termini di processore (s) che KDE vs. Gnome; un eseguibile mc trasferito fallisce immediatamente con bus error.

Domanda, quindi:

Dato

  • una scatola di Ubuntu che controllo completamente,
  • non root su una scatola di KUbuntu che ha makee gcce alcuni altri strumenti ma non una toolchain di sviluppo completa, come le cose sottostanticonfig
  • possibilità di scaricare tutti i pacchetti di cui ho bisogno
  • possibilità di creare e creare nel mio albero $ HOME

come posso crearne uno mcche verrà eseguito sulla mia scatola di Kubuntu bloccata?

Risposte:


3

Poiché mcviene creato con gli autotools , è possibile configurare il pacchetto in modo tale che non venga installato in un sistema, ma in una directory utente scrivibile dall'utente. Puoi farlo fornendo opzioni extra alla ./configurechiamata che emetti. Per vedere tutte le opzioni di build disponibili eseguite

./configure --help

Il proiettile magico qui è la PREFIXvariabile utilizzata: (approssimativamente) indica il processo di compilazione in cui vengono installati tutti i tuoi programmi e file di supporto. Questo può essere ulteriormente perfezionato.

Quando costruisco e installo come utente, di solito installo in un PREFIXin $HOME/bin/progname.dir, mentre gli eseguibili vanno direttamente in $HOME/bin, quindi per il tuo caso

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

e poi

make install

Nel tuo .profilefile dovresti aggiornare la tua $PATHvariabile per includerla $HOME/bin/aggiungendo una riga come

export PATH=$HOME/bin:PATH

Grazie! Ci proverò domani. Sono un po 'preoccupato GLIB. Ci sono alcuni GLIB 2.0 .sosul mio sistema, ma da nessuna parte a glib-config.
Carl Smotricz,

Accidenti! Ho ancora problemi. configurechiama chk-confige cerca GLIB. Vuole un glib-confige non riesce a trovarne uno. Ne ho fatto una domanda separata: superuser.com/questions/115671/…
Carl Smotricz

OK, l'ho fatto funzionare. Vedi la mia risposta per i dettagli. Tuttavia, mi hai fatto iniziare bene, quindi ecco il mio segno di spunta per te. Grazie!
Carl Smotricz,

0

Successo! Questo è un feedback per chiunque abbia problemi simili.

Come il clacson ha spiegato utile, configurepuò essere aiutato insieme ad alcune opzioni. Ho trovato questo non era abbastanza, però: ho dovuto cambiare manualmente i link da ./config/a config.sub, config.guess, install-she missing.

Successivamente, ho avuto molti problemi configurea trovare il mio glib 2.0. Si scopre che configurechiama chk-confige che ha un numero di modi diversi di trovare glib, nessuno dei quali ha funzionato. Ho cercato manualmente le cose che stava cercando di trovare e ho scoperto che glib-2.0.pcera effettivamente disponibile. Potrei chk-configtrovarlo indicando PKG_CONFIG_PATHla directory che contiene tutti quei .pcfile.

Ho scritto un piccolo script di shell per fornire configuretutte le variabili e le opzioni di ambiente richieste. Ecco qui:

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