Wie baue ich mc für kubuntu ohne root-Zugang auf?

1835
Carl Smotricz

mc (Midnight Commander) in Kubuntu 9.10 (Karmic Koala) hat ein Problem beim Zugriff auf .zipandere Archive als virtuelles Dateisystem. Es hat mit einem geänderten Format der Ausgabe von zu tun unzip. Diskussionen bieten eine Problemumgehung, dies erfordert jedoch rootDateizugriff (z. B. Systemzugriff ). Mein Arbeitskasten ist gesperrt.

Ich habe Ubuntu (ohne das K) 9.10 zu Hause, und ich habe das Quellpaket heruntergeladen und eine Codeänderung vorgenommen, die ein schrecklicher Hack ist (ich würde nicht davon träumen, zu veröffentlichen), der es mir erlaubt, meine eigene korrekt funktionierende Kopie mcin einem Unterverzeichnis auszuführen von meinem $HOME. Leider ist mein "zu Hause" -Box unterschiedlich konfiguriert, sowohl in Bezug auf Prozessor (en) als auch KDE vs. Gnome. Eine übertragene mc-ausführbare Datei schlägt sofort fehl bus error.

Frage dann:

Gegeben

  • eine Ubuntu-Box, die ich vollständig kontrolliere,
  • Nicht-Root auf einer KUbuntu-Box, die über makeund gccund einige andere Tools verfügt, jedoch keine vollständige Entwicklungs-Toolchain, zconfig
  • Fähigkeit, alle Pakete herunterzuladen, die ich brauche
  • Fähigkeit, in meinem eigenen $ HOME-Baum zu erstellen und herumzumachen

Wie kann ich eine bauen mc, die auf meiner gesperrten Kubuntu-Box läuft?

1

2 Antworten auf die Frage

3
Benjamin Bannier

Da mces mit Autotools erstellt wird, können Sie das Paket so konfigurieren, dass es nicht in einem System installiert wird, sondern in einem Benutzerverzeichnis, das von Ihnen schreibbar ist. Sie tun dies, indem ./configureSie dem von Ihnen ausgehenden Anruf zusätzliche Optionen geben. Um alle verfügbaren Build-Optionen anzuzeigen, starten Sie

./configure --help 

Die magische Kugel ist die verwendete PREFIXVariable: Sie teilt dem Build-Prozess (ungefähr) mit, wo all Ihre Programme und Unterstützungsdateien installiert werden. Dies kann weiter verfeinert werden.

Wenn ich als Benutzer baue und als Benutzer installiere, installiere ich normalerweise in einem PREFIXIn $HOME/bin/progname.dir, während die ausführbaren Dateien direkt in $HOME/bin, also für Ihren Fall, verwendet werden

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

und dann

make install 

In Ihrer .profileDatei sollten Sie Ihre $PATHVariable aktualisieren, $HOME/bin/indem Sie eine Zeile wie hinzufügen

export PATH=$HOME/bin:PATH 
Vielen Dank! Ich werde es morgen versuchen. Ich mache mir etwas Sorgen um "GLIB". Es gibt einige GLIB 2.0 `.so`'s auf meinem System, aber nirgends eine` glib-config`. Carl Smotricz vor 14 Jahren 0
Drat! Ich habe immer noch Probleme. "configure" ruft "chk-config" auf und sucht nach GLIB. Es will eine "glib-config" und kann keine finden. Ich habe eine separate Frage dazu gestellt: http://superuser.com/questions/115671/where-to-get-glib-config-for-kubuntu Carl Smotricz vor 14 Jahren 0
OK, ich habe es funktioniert. Sehen Sie meine Antwort für Details. Trotzdem hast du mich gut angefangen, also hier mein Haken für dich. Vielen Dank! Carl Smotricz vor 14 Jahren 0
0
Carl Smotricz

Erfolg! Dies ist eine Rückmeldung für alle anderen mit ähnlichen Problemen.

Wie Honk hilfreich erklärt, configurekann mit einigen Optionen geholfen werden. Ich fand das war nicht ganz gereicht, aber: Ich musste manuell die Links ändern aus ./config/zu config.sub, config.guess, install-shund missing.

Danach hatte ich viele Probleme, configuremeine zu finden glib 2.0. Es stellt sich heraus, dass configureAnrufe chk-configauf verschiedene Arten gefunden werden können glib, von denen keine funktioniert hat. Ich suchte manuell nach dem Zeug, das es zu finden versuchte, und stellte fest, dass glib-2.0.pces tatsächlich verfügbar war. Ich könnte es chk-configfinden, indem ich PKG_CONFIG_PATHauf das Verzeichnis verweise, das all diese .pcDateien enthält.

Ich habe ein kleines Shell-Skript geschrieben, um configurealle erforderlichen Umgebungsvariablen und -optionen bereitzustellen . Hier ist es:

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