Pagina 1 di 1

[RISOLTO] non si compila SBo mdbtools

Inviato: mer 27 mar 2013, 1:30
da varjag
Buon giorno.
Uso slackware64 14.
Non riesco compilare mdbtools con slackbuilds.

Ultime rige con errore dopo il comando ./mdbtools.SlackBuild :

Codice: Seleziona tutto

(cd . && ln -s index.lo index.o)
(cd . && ln -s like.lo like.o)
(cd . && ln -s write.lo write.o)
(cd . && ln -s stats.lo stats.o)
gcc -shared  catalog.lo mem.lo file.lo kkd.lo table.lo data.lo dump.lo backend.lo money.lo sargs.lo index.lo like.lo write.lo stats.lo  /usr/lib/libglib-2.0.so  -Wl,-soname -Wl,libmdb.so.0 -o .libs/libmdb.so.0.0.0
/usr/lib/libglib-2.0.so: could not read symbols: File in wrong format
collect2: error: ld returned 1 exit status
make[2]: *** [libmdb.la] Errore 1
make[2]: Leaving directory `/tmp/SBo/mdbtools-0.5/src/libmdb'
make[1]: *** [all-recursive] Errore 1
make[1]: Leaving directory `/tmp/SBo/mdbtools-0.5/src'
make: *** [all-recursive] Errore 1
Come si puo risolvere ?
mdbtools mi serve per aprire il file con estensione .mdb
Esistono altri programmi in linux con i quali si puo operare su questo tipo di file?
Grazie in anticipo

Re: non si compila SBo mdbtools

Inviato: mer 27 mar 2013, 8:30
da hashbang
Strano...
A me compila senza problemi. L'unica cosa è che ho usato lo SlackBuild di Slacky.
Comunque, ho creato il pacchetto per Slackware64 14.0. Domani dovrebbe essere in upload. Se ne hai un bisogno urgente, te lo posso inviare.


EDIT: A me compila anche con quello di SBo. A questo punto credo che il problema sia il tuo environment.

Anche perchè hai detto di usare Slack64, ma sta linkando librerie a 32bit..dando ovviamente l'errore.

Codice: Seleziona tutto

/usr/lib/libglib-2.0.so  -Wl,-soname -Wl,libmdb.so.0 -o .libs/libmdb.so.0.0.0
/usr/lib/libglib-2.0.so: could not read symbols: File in wrong format
Hai una Slackware multilib, vero?

Re: non si compila SBo mdbtools

Inviato: mer 27 mar 2013, 11:02
da varjag
Buona giornata
grazie per rapidissima risposta
Uso Sackware64 14 multilib
e come ho detto slackbuild da slackbuilds.org
Perche mi sta lincando librerie a 32 bit?
che problema ho con environment e come risorvelro?
Qui qualcosa mi sfugge...esistono dei slackbuilds di Slacky?
grazie per gentilissimo aiuto.
non ho bisogno urgentissimo. aspetto upload e cerco di capire che problema ho con environment.

Re: non si compila SBo mdbtools

Inviato: mer 27 mar 2013, 11:20
da hashbang
Compilare su di una slackware multilib non è mai una buona soluzione.
Meglio utilizzare un ambiente di compilazione apposito, con una Slackware64 pulita, magari in chroot per risparmiare risorse.

Prova a forzare il linking delle librerie a 64bit settando LDFLAGS affinchè linki le librerie a 64bit.
Questo è il parametro da inserire

Codice: Seleziona tutto

-L/usr/lib64

EDIT: Nello SlackBuild puoi settarlo così

Codice: Seleziona tutto

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  SLKLDFLAGS="-L/usr/lib64"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

[...]

LDFLAGS="$SLKLDFLAGS" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib$LIBDIRSUFFIX \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --mandir=/usr/man \
  --enable-sql \
  --enable-static=no \
  --enable-shared=yes \
  --build=$ARCH-slackware-linux

Re: non si compila SBo mdbtools

Inviato: mer 27 mar 2013, 11:31
da hashbang
varjag ha scritto:Qui qualcosa mi sfugge...esistono dei slackbuilds di Slacky?
Certo.
Noi abbiamo un repository binario e per ogni pacchetto rilasciamo anche gli SlackBuild.

Re: non si compila SBo mdbtools

Inviato: mer 27 mar 2013, 11:40
da varjag
grazie
ho compilato senza errore con la modifica proposta da te.
Ho capito..che non capisco niente in slack..sopratutto quello che riguarda compilazioni e multilib.
Quindi se uso slackware64 multilib compilazioni devo fare sempre in slakware64 pulita?
e riguarda slakbuilds che richedono librerie a 32bit, per esempio skype, temaviewer, vbox, ache quelle devo compilare in slackware64 pulita?
mi mancano nozioni riguarda funzionamento di multilib..dove si puo informarmi un po meglio ?

Re: non si compila SBo mdbtools

Inviato: mer 27 mar 2013, 11:45
da varjag
intendi repository :
http://www.slacky.eu/asche64/pkgs/index.php?ver=16 ?
se parli di questo allora lo conosco, pero non c'era lo slackbuild di mdbtools.

Re: non si compila SBo mdbtools

Inviato: mer 27 mar 2013, 11:52
da hashbang
varjag ha scritto:grazie
ho compilato senza errore con la modifica proposta da te.
Ho capito..che non capisco niente in slack..sopratutto quello che riguarda compilazioni e multilib.
Quindi se uso slackware64 multilib compilazioni devo fare sempre in slakware64 pulita?
e riguarda slakbuilds che richedono librerie a 32bit, per esempio skype, temaviewer, vbox, ache quelle devo compilare in slackware64 pulita?
mi mancano nozioni riguarda funzionamento di multilib..dove si puo informarmi un po meglio ?
Allora, non è che DEVI. È meglio se lo fai in una slackware64 pulita.

È meglio come soluzione perché risparmi rogne simili. Ovvio però che con i dovuti accorgimenti (come il forzare il linking delle librerie) puoi fare tutto.

Per quanto riguarda Skype il nostro pacchetto nel repository 64bit include tutte le librerie necessarie (infatti si chiama skype_static). E comunque, quelle andrebbero compilate separatamente in quanto skype non è a 64bit. Quindi non potresti compilarle su di una Slack64 pulita.
Idem per TeamViewer.
VirtualBox, c'è la versione a 64bit presente sul loro sito. È una versione statica, quindi non ha problemi di sorta. Puoi compilarlo, se vuoi...ma se non vuoi passarti la giornata in compagnia del compilatore, ti consiglio di lasciar perdere.
intendi repository :
http://www.slacky.eu/asche64/pkgs/index.php?ver=16 ?
se parli di questo allora lo conosco, pero non c'era lo slackbuild di mdbtools.
Si. Il pacchetto non c'era perchè non è stato portato nei repository successivi a quello della 13.0.
Ora l'ho portato su quello della 14.0 (64bit), quindi domani sarà disponibile.
Già se vai adesso, dovresti trovare l'entry relativa (anche se con la scritta "non ancora disponibile").

Re: non si compila SBo mdbtools

Inviato: mer 27 mar 2013, 12:17
da varjag
ho gia visto stamattina l'entry di mdbtools so slacky..
Per quanto riguarda Skype il nostro pacchetto nel repository 64bit include tutte le librerie necessarie (infatti si chiama skype_static). E comunque, quelle andrebbero compilate separatamente in quanto skype non è a 64bit.
La parola separatamente riguarda le libreire 32bit che si installano con multilib?
quindi se ho capito bene il skype con slackbuilds di slackbuilds.org si compila in ambiente miltilib?
grazie per le risposte e per aiuto.
purtroppo non riesco ricambiare aiuto siccome non ho tanta padronanza in linux, almeno per oggi..

Re: non si compila SBo mdbtools

Inviato: mer 27 mar 2013, 12:27
da hashbang
varjag ha scritto:ho gia visto stamattina l'entry di mdbtools so slacky..
Per quanto riguarda Skype il nostro pacchetto nel repository 64bit include tutte le librerie necessarie (infatti si chiama skype_static). E comunque, quelle andrebbero compilate separatamente in quanto skype non è a 64bit.
La parola separatamente riguarda le libreire 32bit che si installano con multilib?
Esattamente. Se vuoi compilare da solo le dipendenze di skype, non puoi compilarle su una Slackware64 pulita, perchè altrimenti ti ritroveresti con librerie a 64bit.
quindi se ho capito bene il skype con slackbuilds di slackbuilds.org si compila in ambiente miltilib?
Come ho detto sopra, tutto puoi compilare in ambiente multilib, anche se non è conveniente, in quanto il linker potrebbe far casino (a meno che non forzi LDFLAGS in modo che GNU ld non faccia casini, come quello che ti è capitato).
Se vuoi star sicuro dovresti usare environment puliti, sia per la 32bit che per la 64bit, in modo da generare pacchetti sicuramente funzionanti e ben compilati.

Re: non si compila SBo mdbtools

Inviato: mer 27 mar 2013, 12:38
da varjag
Si puo installare in chroot slackware14 32bit su una slackware64 14 ?
perche come capisco è unico modo per avere 2 environment puliti..
o c'e un'altro modo per avere 2 ambienti puliti sia di 64bit che 32bit?

Re: non si compila SBo mdbtools

Inviato: mer 27 mar 2013, 12:52
da hashbang
varjag ha scritto:Si puo installare in chroot slackware14 32bit su una slackware64 14 ?
Si.
Crei una directory ed installi una Slackware 14.0 32-bit lì dentro
Ad esempio:

Codice: Seleziona tutto

# mkdir -p /chroot/32
# installpkg --root /chroot/32 /path/dei/pacchetti/della/slackware
Poi fai un bind di /dev, /sys e /proc

Codice: Seleziona tutto

# mount -o bind /proc /chroot/32/proc
# mount -o bind /sys /chroot/32/sys
# mount -o bind /dev /chroot/32/dev
Ed infine entri nel chroot

Codice: Seleziona tutto

# chroot /chroot/32 /bin/bash
Una volta entrato compili ciò che ti serve.

Puoi anche creare delle shared directory, in modo da passare al chroot i file direttamente dall'environment host, sempre usando il bind

Codice: Seleziona tutto

# mkdir -p /chroot/32/export
# mkdir -p ~/export
# mount -o bind /home/utente/export /chroot/32/export

Re: non si compila SBo mdbtools

Inviato: mer 27 mar 2013, 13:16
da ponce
varjag, tieni di conto che la compilazione in un ambiente multilib non e' supportata dagli script su slackbuilds.org, e' nelle FAQ

http://slackbuilds.org/faq/#multilib

anch'io uso multilib ma compilo quello che mi serve dentro macchine virtuali (puoi anche farti un installazione apposta dentro una vm di virtualbox).

Re: non si compila SBo mdbtools

Inviato: mer 27 mar 2013, 19:21
da varjag
Grazie per aiuto..
in questi giorni sistemo slack..
chroot e 2 ambienti puliti..

Re: non si compila SBo mdbtools

Inviato: gio 28 mar 2013, 16:08
da hashbang
Se il problema è stato risolto, metti il relativo tag al titolo del primo post.