Se avete problemi con l'installazione e la configurazione di Slackware64 postate qui. Non usate questo forum per argomenti che trattano la Slackware32 o generali... per quelli usate rispettivamente il forum Slackware e Gnu/Linux in genere.
Regole del forum
1) Citare sempre la versione di Slackware64 usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware64, se l'argomento è Slackware32 o generale usate rispettivamente il forum Slackware o Gnu/Linux in genere.
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.
ciao
probabilmente mi sto perdendo in un bicchier d'acqua.
ho installato un paio di giorni fa la versione Slack a 64 bit xfce, stanco di kde (mi sta antipatico, non so che dire).
Ho installato anche ktsuss ma non mi funge.
Se do il comando
bash-4.1$ ktsuss halt
bash: /usr/bin/ktsuss: No such file or directory
bash-4.1$
Ovviamente ktsuss si trova in /usr/bin e gli ho dato i permessi di user. Le librerie sono state tutte controllate, però tutte le librerie sono a 64 bit e ktsuss è a 32: è quello il problema? e se nel caso come me la potrei sbrogliare con altri eventuali programmi a 32 bit ?
grazie
james
Ultima modifica di james2221 il sab 29 ott 2011, 8:30, modificato 1 volta in totale.
oppure prendi lo slackbuild che sta qui su slacky e ti fai il pacchetto a 64bit.
EDIT: googlando un po' ho trovato la versione a 64bit in un altro repository. non avendo dipendenze strane per me lo potresti installare tranquillamente
grazie per le risposte.
Penso che mi avventurerò nel multilib che avevo già sistemato tempo fa (installazione iniziale 64 bit, poi passaggio a 32 e ritorno peso definitivo a 64).
Tuttavia mi piacerebbe fare 'sta roba qua
oppure prendi lo slackbuild che sta qui su slacky e ti fai il pacchetto a 64bit.
ma non so da che parte girarmi. un po' di pazienza a spiegarmi?
grazie
ps avevo visto la versione 64 bit e pensavo di installarla come ultima spiaggia,non essendo slacky
james2221 ha scritto:ma non so da che parte girarmi. un po' di pazienza a spiegarmi?
è piu' difficile a dirsi... che a farsi
lo slackbuild, come il nome puo' far intuire è uno script shell che ti prepara un pacchetto slackware.
quindi estrae i sorgenti, compila e impacchetta tutto.
una volta che ti sei assicurato di avere gli strumenti per compilare (gcc, make e via dicendo)
- scaricati il contenuto del link che ti ho passato (tutti i file) in una directory a tua scelta.
- da root devi assicurarti che lo slackbuild sia eseguibile con
ciao
ho messo "giù" provvisoriamente il pacchetto del link non slacky, mi da un problema ma al momento non mi interessa.
Tornando piuttosto al discorso dello slackbuild ho messo i file in una directory,
(a scanso di equivoci li elenco:
ktsuss-1.4/COPYING
ktsuss-1.4/config.guess
+-------------------------+
| Start SlackBuild Ktsuss |
+-------------------------+
checking for a BSD-compatible install... /bin/ginstall -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
bash-4.1#
come se, mi pare, mancassero alcuni strumenti per compilare. Ma in fase di installazione ho installato tutto, escluso kde, pertanto non credo mi manchi niente.
Cosa devo controllare tra i pacchetti installati che potrebbe mancare?
grazie
si scusami... mi sono dimenticato un piccolo particolare
in genere nel repository slacky gli slackbuild compilano di default per l'architettura di appartenenza.
in sostanza se prendi uno slackbuild dal repository a 32 bit, di default compila per quell'architettura.
per questo avendo preso lo slackbuild dal repo a 32bit ti da' quell'errore, che in parole semplici ti sta dicendo che non trova un compilatore adatto, che su un sistema a 64bit puro è normale.
puoi cambiare questo comportamento in due modi.
1) indicare all'avvio il parametro ARCH in questo modo
2) modificare lo slackbuild cambiando il parametro di default per tale impostazione. è sufficiente aprire lo slackbuild e cercare la variabile ARCH. dopo ce l'hai trovata sostituisci il valore presente (che di solito per le architetture a 32bit è i486 o i686) con x86_64
@miklos
grazie, a posto, ho capito come funge la pacchettizzazione (credo...).
Pertanto, se non ho capito male, non c'è bisogno del multilib, ovvero se trovo un programma che mi serve ma disponibile solo per arch32 mi basta pacchettizzarlo per 86_64, dico bene?
grazie
james
ecco, sapevo che c'era l'inghippo.
infatti sto provando a pacchettizzare devilspie che ho preso da zenwalk, dopo averlo scompattato ho trovato il file build-devilspie.sh e gli ho dato i soliti comandi, ovvero chmod ed avvio previo ARCH=x86_64 ma mi da l'errore che mi dava il mio primo tentativo con ktsuss, ovvero
checking for gcc... gcc
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
è il caso di aprire un altro thread o si può proseguire qui?
grazie
Il fatto che ci sia un file diverso da uno slackbuild, mi fa pensare che sia stato scritto in modo diverso da un tipico slackbuild (nel senso di variabili, ecc).
Prova a postare il contenuto dello script.
james2221 ha scritto:è il caso di aprire un altro thread o si può proseguire qui?
Forse sì, ma l'ultima parola spetta ai moderatori.
grazie per l'intervento
in merito al thread secondo me si potrebbe modificare il titolo aggiungendo oltre che ktsuss anche devilspie, tutto sommato il problema è lo stesso.
posto comunque il build di devilspie preso da zenwalk
#!/bin/bash
#Automatically Created by buildpkg 1.4.1
#Maintainer: Johannes Marbach (hennes) <jm@rapidrabbit.de>
#url: http://burtonini.com/blog/computers/devilspie
######Begin Redundant Code######################################
check_for_root() {
if [ "$UID" != "0" ]; then
echo "You need to be root"
exit 1
fi
}
clean_dirs () {
for COMPLETED in src pkg; do
if [ -e $COMPLETED ]; then
rm -rf $COMPLETED
fi
done
}
clean_old_builds () {
for COMPLETED in $package.{tgz,md5,dep}; do
if [ "$KEEPDEPFILE" = "1" ] && [ $COMPLETED = $package.dep ]; then
continue
elif [ -e $COMPLETED ]; then
rm -rf $COMPLETED
fi
done
clean_dirs
}
set_pre_permissions() {
cd $startdir/src
find . -perm 664 -exec chmod 644 {} \;
find . -perm 600 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;
find . -perm 400 -exec chmod 644 {} \;
find . -perm 440 -exec chmod 644 {} \;
find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 511 -exec chmod 755 {} \;
find . -perm 711 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
}
check_for_menu_compliance() {
if [ -d "$startdir/pkg/usr/share/applications" ]; then
cd $startdir/pkg/usr/share/applications
for desktop in *.desktop; do
Icon=$(grep -e "^Icon=" $desktop | sed 's/Icon=//')
if [[ "$Icon" ]]; then
if [ ! "$Icon" == "${Icon%.*}" ]; then
sed '/Icon/s/\..*$//' -i $desktop
Icon=$(grep -e "^Icon=" $desktop | sed 's/Icon=//')
fi
if [ -d "$startdir/pkg/usr/share/pixmaps" ]; then
cd $startdir/pkg/usr/share/pixmaps
for pixmaps in *; do
[ -d $pixmaps ] && continue
[ ! "${pixmaps##*.}" == "png" -a ! "${pixmaps##*.}" == "svg" ] && continue
if [ "${pixmaps%.*}" == "$Icon" ]; then
DIR=$(file $pixmaps | awk -F, '{print $2}' | sed 's/ //g')
[ o"$DIR" == "o" ] && DIR="scalable"
mkdir -p $startdir/pkg/usr/share/icons/hicolor/$DIR/apps
mv $pixmaps $startdir/pkg/usr/share/icons/hicolor/$DIR/apps
if [[ ! "$(ls $startdir/pkg/usr/share/pixmaps)" ]]; then
rm -rf $startdir/pkg/usr/share/pixmaps
fi
fi
done
fi
if [ -d "$startdir/pkg/usr/share/icons" ]; then
cd $startdir/pkg/usr/share/icons
for icons in *; do
if [ "${icons%.*}" == "$Icon" ]; then
[ ! "${pixmaps##*.}" == "png" -a ! "${pixmaps##*.}" == "svg" ] && continue
DIR=$(file $icons | awk -F, '{print $2}' | sed 's/ //g')
[ o"$DIR" == "o" ] && DIR="scalable"
mkdir -p $startdir/pkg/usr/share/icons/hicolor/$DIR/apps
mv $icons $startdir/pkg/usr/share/icons/hicolor/$DIR/apps
fi
done
fi
fi
done
fi
}
gzip_man_and_info_pages() {
for DOCS in man info; do
if [ -d "$startdir/pkg/usr/share/$DOCS" ]; then
mv $startdir/pkg/usr/share/$DOCS $startdir/pkg/usr/$DOCS
if [[ ! "$(ls $startdir/pkg/usr/share)" ]]; then
rm -rf $startdir/pkg/usr/share
fi
fi
if [ -d "$startdir/pkg/usr/$DOCS" ]; then
# I've never seen symlinks in info pages....
if [ "$DOCS" == "man" ]; then
(cd $startdir/pkg/usr/$DOCS
for manpagedir in $(find . -type d -name "man*" 2> /dev/null) ; do
( cd $manpagedir
for eachpage in $( find . -type l -maxdepth 1 2> /dev/null) ; do
ln -s $( readlink $eachpage ).gz $eachpage.gz
rm $eachpage
done )
done)
fi
find $startdir/pkg/usr/$DOCS -type f -exec gzip -9 '{}' \;
fi
done
}
set_post_permissions() {
for DIRS in usr/share/icons usr/doc; do
if [ -d "$startdir/pkg/$DIRS" ]; then
if [ "$DIRS" == "usr/doc" ]; then
find $startdir/pkg/$DIRS -type f -exec chmod 644 {} \;
find $startdir/pkg/$DIRS -type d -exec chmod 755 {} \;
fi
fi
[ -d $startdir/pkg/$DIRS ] && chown root:root -R $startdir/pkg/$DIRS
done
[ -d $startdir/pkg/usr/bin ] && find $startdir/pkg/usr/bin -user root -group bin -exec chown root:root {} \;
}
copy_build_script() {
mkdir -p $startdir/pkg/usr/src/$pkgname-$pkgver/
cp $startdir/build-$pkgname.sh $startdir/pkg/usr/src/$pkgname-$pkgver/build-$pkgname.sh
[ -f $startdir/ZENBUILD ] && cp $startdir/ZENBUILD $startdir/pkg/usr/src/$pkgname-$pkgver/ZENBUILD
}
create_package() {
cd $startdir/pkg
/sbin/makepkg -l y -c n $startdir/$package.tgz
cd $startdir
md5sum $package.tgz > $startdir/$package.md5
}
strip_binaries() {
cd $startdir/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
}
#########End Redundant Code#####################################
#########Begin Non Redundant Code##############################
prepare_directory() {
mkdir $startdir/src
mkdir -p $startdir/pkg/usr/src/$pkgname-$pkgver
for SOURCES in ${source[@]}; do
protocol=$(echo $SOURCES | sed 's|:.*||')
if [ ! -f "$(basename $SOURCES)" ]; then
if [ "$protocol" = "http" -o "$protocol" = "https" -o "$protocol" = "ftp" ]; then
echo -e "\nDownloading $(basename $SOURCES)\n"
wget $SOURCES
if [ ! "$?" == "0" ]; then
echo "Download failed"
exit 2
fi
else
echo "$SOURCES does not appear to be a url nor is it in the directory"
exit 2
fi
fi
cp -R $(basename $SOURCES) $startdir/src
if ! [ "$protocol" = "http" -o "$protocol" = "https" -o "$protocol" = "ftp" ]; then
cp -R $startdir/$(basename $SOURCES) $startdir/pkg/usr/src/$pkgname-$pkgver/
fi
if [ "${SOURCES##*.}" == "desktop" ]; then
[[ "$(grep -e "^Categories=[a-zA-Z]*;" $(basename $SOURCES))" ]] && install -D $startdir/$(basename $SOURCES) /home/jm/software/my-packages/official/extra/xap/devilspie/pkg/usr/share/applications/$(basename $SOURCES)
fi
done
}
extract_source() {
cd $startdir/src
if [[ "$(ls $startdir/src)" ]]; then
for FILES in ${source[@]}; do
FILES="$(basename $FILES)"
file_type=$(file -biz "$FILES")
unset cmd
case "$file_type" in
*application/x-tar*)
cmd="tar -xf" ;;
*application/x-zip*)
cmd="unzip" ;;
*application/x-gzip*)
cmd="gunzip -d -f" ;;
*application/x-bzip*)
cmd="bunzip2 -f" ;;
esac
if [ "$cmd" != "" ]; then
echo "$cmd $FILES"
$cmd $FILES
fi
done
elif [ ! "$source" ]; then
echo -n "" # lame fix
else
echo "no files in the src directory $startdir/src"
exit 2
fi
}
build() {
cd $startdir/src/$pkgname-$pkgver
./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc
make || return 1
make install DESTDIR=$startdir/pkg
}
create_slackdesc() {
mkdir $startdir/pkg/install
cat <<"EODESC" >$startdir/pkg/install/slack-desc
devilspie: devilspie (Window-matching utility)
devilspie:
devilspie: Devil's Pie can be configured to detect windows as they are created,
devilspie: and match the window to a set of rules. If the window matches the
devilspie: rules, it can perform a series of actions on that window. For example,
devilspie: I can make all windows created by X-Chat appear on all workspaces, and
devilspie: the main Gkrellm1 window does not appear in the pager or task list.
devilspie:
devilspie:
devilspie:
devilspie:
EODESC
}
copy_docs() {
for stuff in ${docs[@]}; do
if [ ! -d "$startdir/pkg/usr/doc/$pkgname-$pkgver" ]; then
mkdir -p $startdir/pkg/usr/doc/$pkgname-$pkgver
fi
find $startdir/src -type f -iname "$stuff" -exec cp -R '{}' $startdir/pkg/usr/doc/$pkgname-$pkgver \;
done
}
detect_dependencies() {
echo "Detecting dependencies..."
depends=$(requiredbuilder -z $startdir/$package.tgz)
depstring=$depends
unset FIRST
for deps in $(echo "${depstring}" | sed 's/,/\n/g' | sort -u); do
if [[ ! "$FIRST" ]]; then
finaldeps=$deps,
FIRST='1'
continue
fi
finaldeps=${finaldeps}${deps},
done
echo "$finaldeps" | sed -e 's/^,//' -e 's/,$//' > $startdir/$package.dep
}
####End Non Redundant Code############################
#Variables
startdir=$(pwd)
SRC=$startdir/src
PKG=$startdir/pkg
pkgname=devilspie
pkgver=0.22
pkgrel=1
zenver=50
arch=i486
package=$pkgname-$pkgver-$arch-$zenver.$pkgrel
source=(http://burtonini.com/computing/devilspie-0.22.tar.gz)
docs=(AUTHORS COPYING ChangeLog INSTALL NEWS README TODO)
export CFLAGS="-O2 -march=i486 -mtune=i686"
export CXXFLAGS="-O2 -march=i486 -mtune=i686"
#Execution
check_for_root
clean_old_builds
prepare_directory
extract_source
set_pre_permissions
build
if [ ! "$?" = "0" ]; then
echo "build() failed."
exit 2
fi
create_slackdesc
copy_docs
check_for_menu_compliance
strip_binaries
gzip_man_and_info_pages
set_post_permissions
copy_build_script
create_package
detect_dependencies
echo "Package has been built."
scusa, ho rieditato perchè ho scritto una sciocchezza, ci guardo e riscrivo
ri-ri-edito:
avevo già provato il primo giorno della installazione di Slack, avevo scaricato i sorgenti ma al "make" mi diceva che
xutils.c: In function 'my_wnck_change_state':
xutils.c:79:25: error: 'gdk_display' undeclared (first use in this function)
xutils.c: In function 'my_wnck_error_trap_pop':
xutils.c:103:10: error: 'gdk_display' undeclared (first use in this function)
xutils.c: In function 'my_wnck_get_string_property_latin1':
xutils.c:125:32: error: 'gdk_display' undeclared (first use in this function)
xutils.c: In function 'my_wnck_window_get_xscreen':
xutils.c:182:25: error: 'gdk_display' undeclared (first use in this function)
xutils.c: In function 'my_wnck_get_cardinal_list':
xutils.c:205:32: error: 'gdk_display' undeclared (first use in this function)
xutils.c: In function 'my_wnck_get_cardinal':
xutils.c:245:32: error: 'gdk_display' undeclared (first use in this function)
make[2]: *** [xutils.o] Error 1
make[2]: Leaving directory `/home/piero/Downloads/devil/devilspie-0.22/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/piero/Downloads/devil/devilspie-0.22/src'
make: *** [all-recursive] Error 1
bash-4.1#
, ho provato a guardare il file xutils.c ma non ho capito molto (leggasi: niente).
Così, sempre da SlackBuilds ho scaricato lo SlackBuild che ho salvato in una directory nuova, ho scompattato e con cd sono entrato, ho dato i permessi a devilspie.SlackBuild ma sto accidente mi dice che cerca il file devilspie-0.22.tar.gz che non esiste perchè il file originale si chiama devilspie.tar.gz, senza il numnero della versione. Ma anche se lo rinomino in qualche punto piu avanti mi dice che non trova devilspie-0.22. insomma, devo cercare nello SlackBuild la stringa devilspie e sostituirla con devilspie-0.22 oppure sto prendendo una cantonata pazzesca?
grazie
james
come spiegato qui gli script di slackbuilds.org non prevedono lo scaricamento automatico del sorgente (come invece avviene con quelli che prendi qui su slacky).
perciò l'errore che ricevi è perchè ti manca il sorgente vero e proprio. devi scaricarlo manualmente e posizionarlo nella stessa directory dove sta lo slackbuild.