RKWard errore durante il make install del backend di R

Postate qui se avete consigli per migliorare i pacchetti disponibili in questo sito o se avete problemi con installazione, funzionamento o altro.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il nome del pacchetto.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

RKWard errore durante il make install del backend di R

Messaggio da giberg »

Ciao
dovendo valutare un po' di GUI per R (potenzialità, carenze...) mi sto creando il pacchetto di RKWard.
Il pacchetto viene creato, è installabile, però non funziona perché riscontra dei problemi con la libreria che va ad installarsi tra quelle esterne di R (in /usr/lib/R/library).
Durante il make install (eseguito dallo slackbuild) ad un certo punto trovo questo errore:

Codice: Seleziona tutto

[...]
Making install in rbackend
make[2]: Entering directory `/tmp/rkward-0.4.7a/rkward/rbackend'
Making install in rpackages
make[3]: Entering directory `/tmp/rkward-0.4.7a/rkward/rbackend/rpackages'
Makefile:661: warning: overriding commands for target `distclean'
Makefile:589: warning: ignoring old commands for target `distclean'
mkdir -p tmp ; \
        OLDTMP=$TMPDIR ; \
        export TMPDIR=`pwd`/tmp ; \
        /usr/lib/R/bin/R CMD INSTALL -l /tmp/package-rkward//usr/lib/R/library rkward ; \
        export TMPDIR=$OLDTMP
ERROR: -l or --library value '/tmp/package-rkward//usr/lib/R/library' does not exist or is not a directory
[...]
Credo sia questo il pezzo problematico.

Se installo e lancio il programma ottengo infatti l'errore che si può leggere nello screenshot:
http://img458.imageshack.us/img458/2629 ... ardlv7.png

Nello slackbuild non ho messo opzioni particolari, come al solito ho messo prefix=/usr .

Forse va creata manualmente nello script la directory che non trova?

Ricordo che qui su Slacky c'era il pacchetto per Slackware 10.2 fatto da gohanz (mi pare). Se ci fosse ancora lo slackbuild potrei modificare quello.


Il mio è semplicemente la copia di uno slackbuild a caso preso su Slacky adattata al pacchetto:

Codice: Seleziona tutto

#!/bin/sh
# Heavily based on the Slackware 12.0 SlackBuild
# http://rkward.sourceforge.net
#
# RKWard requires:
# - KDE-libraries and headers (>= 3.x) (http://www.kde.org)
# - Qt-libraries and headers (>= 3.x) (http://www.trolltech.com)
# - R and headers (http://www.r-project.org)
# - PHP with commandline-interface (http://www.php.net)


CWD=`pwd`
if ["$TMP" = ""]; then
 TMP=/tmp
fi

PKG=$TMP/package-rkward
NAME=rkward
VERSION=0.4.7a
CHOST=i486
ARCH=${ARCH:-i486}
BUILD=1gb

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486   -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O3 -march=i686 -pipe -fomit-frame-pointer"
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -march=athlon64 -pipe"
elif [ "$ARCH" = "athlonxp" ]; then
  SLKCFLAGS="-O3 -march=athlon-xp -pipe -fomit-frame-pointer"
fi

if [ ! -d $TMP ]; then
 mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
 mkdir -p $PKG
fi

cd $TMP
tar xvzf $CWD/$NAME-$VERSION.tar.gz

echo "+--------------------------------------+"
echo "| Starting SlackBuild  $NAME-$VERSION  |"
echo "+--------------------------------------+"

cd $NAME-$VERSION

find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
find . -perm 666 -exec chmod 644 {} \;
find . -perm 664 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;

chown -R root.root .
CXXFLAGS="${CFLAGS}" \
CFLAGS="$SLKCFLAGS" \
./configure \
    --prefix=/usr \
    --build=$CHOST-slackware-linux
make
make install DESTDIR=$PKG

( cd $PKG
  find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
  find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
  find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs strip -g 2> /dev/null
)

mkdir -p $PKG/usr/doc/$NAME-$VERSION
cp -a AUTHORS COPYING ChangeLog INSTALL README VERSION \
$PKG/usr/doc/$NAME-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $CWD
cp -a $NAME.SlackBuild slack-desc $PKG/usr/doc/$NAME-$VERSION

cd $PKG
makepkg -l y -c n $CWD/$NAME-$VERSION-$ARCH-$BUILD.tgz

if [ "$1" = "--cleanup" ]; then
 rm -rf $TMP/$NAME-$VERSION
 rm -rf $PKG
fi

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Messaggio da giberg »

Nel file rkward/rkward-0.4.7a.tar.gz/rkward-0.4.7a/rkward/rbackend/rpackages/Makefile.am
ho trovato le righe che gestiscono quel pezzetto:

Codice: Seleziona tutto

SUBDIRS = rkward

all:
	-${R_HOMEDIR}/bin/R CMD build rkward
install:
	-mkdir -p tmp ; \
	OLDTMP=$$TMPDIR ; \
	export TMPDIR=`pwd`/tmp ; \
	${R_HOMEDIR}/bin/R CMD INSTALL -l $(DESTDIR)/$(R_LIBDIR) rkward ; \
	export TMPDIR=$$OLDTMP
uninstall:
	-${R_HOMEDIR}/bin/R CMD REMOVE -l $(DESTDIR)/$(R_LIBDIR) rkward
check:
	-${R_HOMEDIR}/bin/R CMD check rkward
clean \
distclean:
	-rm -f rkward_*.tar.gz
	-rm -rf tmp
Il problema è quel percorso d'installazione che si crea:
ERROR: -l or --library value '/tmp/package-rkward//usr/lib/R/library' does not exist or is not a directory

Quel doppio slash che si forma tra package-rkward e usr non va bene.

La sintassi del comando che viene eseguito è:

Codice: Seleziona tutto

R CMD INSTALL [options] pkgs
In questo caso l'opzione è -l oppure -library che indica il percorso dove vengono installate librerie aggiuntive in R.
Poi dopo l'opzione viene indicato il pacchetto (libreria) che verrà installata (kward).

Forse il codice non funziona con il fatto che l'installazione del pacchetto è "fasulla" in quanto non viene fatta realmente nel sistema ma nel percorso /tmp/package-rkward?

Non ho provato a fare l'installazione senza creare il pacchetto per non sporcare troppo (anche se in realtà dovrebbe esserci la possibilità di fare make uninstall).
Ad ogni modo non credo crei problemi normalmente perché è codice già rilasciato e se fosse un bug non permetterebbe nemmeno il funzionamento del software.

L'unica cosa che ho notato è che era stato modificato ma per altri motivi:
https://sourceforge.net/mailarchive/for ... rkward-cvs

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Messaggio da giberg »

giberg ha scritto: Il problema è quel percorso d'installazione che si crea:
ERROR: -l or --library value '/tmp/package-rkward//usr/lib/R/library' does not exist or is not a directory

Quel doppio slash che si forma tra package-rkward e usr non va bene.

La sintassi del comando che viene eseguito è:

Codice: Seleziona tutto

R CMD INSTALL [options] pkgs
Ho provato ad installare senza creare il pacchetto e funziona. Questa sarebbe l'installazione corretta nello stesso punto (anche in questo caso c'è il doppio slash).

Codice: Seleziona tutto

Making install in rbackend
make[2]: Entering directory `/home/gianni/Sorgenti/rkward/rkward-0.4.7a/rkward/
rbackend'
Making install in rpackages
make[3]: Entering directory `/home/gianni/Sorgenti/rkward/rkward-0.4.7a/rkward/
rbackend/rpackages'
Makefile:661: warning: overriding commands for target `distclean'
Makefile:589: warning: ignoring old commands for target `distclean'
mkdir -p tmp ; \
        OLDTMP=$TMPDIR ; \
        export TMPDIR=`pwd`/tmp ; \
        /usr/lib/R/bin/R CMD INSTALL -l //usr/lib/R/library rkward ; \
        export TMPDIR=$OLDTMP
Qualche idea su come aggirare l'ostacolo per poter creare anche il pacchetto?

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Messaggio da giberg »

Ora c'è il nuovo pacchetto su Slacky, quindi nessun problema.
Per curiosità ho controllato lo Slackbuild ma non mi pare ci siano accorgimenti particolari quindi la domanda è:
come mai ha funzionato senza quell'errore che capitava a me? Tutto sommato nella base gli slackbuild sono identici.

Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Messaggio da Loris »

Forse la versione nuova ha risolto i vari problemi di ricompilazione, ricordo che ho sempre fatto fatica con questo pacchetto e per diversi anni non l'ho pacchettizzato.
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Messaggio da giberg »

Ok,grazie! :)

Intanto segnalo che dopo aver aggiornato il pacchetto R-project alla versione 2.6.0 appena inserita nel repository, ho dovuto ricompilare RKward perché non funzionava più, nemmeno reinstallandolo.

Rispondi