Skip navigation

Category Archives: Linux

come su windows anche su wine certe librerie non vengono installate con l‘installer.

L’editor senza il file MSCOMCTL.OCX funziona lo stesso, ma su windows compare un errore quando si lancia il “simulatore” (SXSim), su wine invece non succede niente.

Il problema si risolve velocemente lanciando e installando questo eseguibile libraryfiles.exe (sia su windows che su wine)

Un metodo migliore però è copiare il file MSCOMCTL.OCX recuperabile facilmente su internet. Io l’ho trovato qua: http://www.ocxdump.com/download-ocx-files_new.php/ocxfiles/M/MSCOMCTL.OCX/6.01.9782/download.html

Copiarlo nella cartella windows/system32 .

(leggendo in giro consigliano eseguire dal prompt dei comanti regsvr32 MSCOMCTL.OCX per registrare il file,  penso comunque che sia inutile per il funzionamento del programma )

Per ora l’unico file manager per caricare i file .iso su partizioni wbfs che sono riuscito a far girare sulla mia Fedora 14 è Wiithon (decisamente non il massimo)

Ho installato Wiithon e linux-wbfs-manager

Comunque, per chi interessa, il procedimento per whiton è:


bzr branch http://bazaar.launchpad.net/~wii.sceners.linux/wiithon/1.1 wiithon1.1

yum install gcc gcc-c++ glibc glibc-devel glibc-headers glibc-devel.i686 ImageMagick pygtk2 glade2 libglade2 python-sexy python-sqlalchemy gnome-icon-theme gettext

cd wiithon1.1

make

su

make install

gpasswd -a $USER disk

a questo punto ri-effettuare il login per applicare la modifica al gruppo di appartenenza dell’utente e lanciare il programma con

/usr/game/wiithon

per compilare wbfs-gtk invece recuperare il pacchetto dal sito del progetto
installare le dipendenze: (il comando successivo installare anche le gtk2-devel e tutte le dipendenze per la compilazione)

yum install libglade2-devel

e infine dare il solito

make

per ottenere l’eseguibile ‘wbfs_gtk’.
per avviare quindi, (nella cartella dei sorgenti):

./wbfs_gtk

Scaricando i sorgenti del windowmanager più geek della storia mi sono accorto di una voce nuova nuova nella fluxbox-project-page su sourceforge.net: la versione 1.3 del suddetto wm è stata rilasciata (5 ora fa).

Era il 18 settembre 2008 il giorno dell’ultima release (la 1.1) e dopo 4 lunghi anni come niente fosse ecco che il progetto si aggiorna e pubblica questo comunicato:

You did’nt see that coming, did you?

Sat Feb 19 18:50:02 UTC 2011

Fluxbox 1.3 has arrived! A long long long time is over, and we finally decided to make a release.

  • Added support for bidirectional text, #2801836.
  • Allow to override ‘Focus New Windows’ via .fluxbox/apps
  • New actions:
    • ActivateTab
    • ArrangeWindowsVertical
  • New ‘MoveN’ and ‘ClickN’ action support for keys file
  • New focus model ‘StrictMouseFocus’. This will affect focus when closing, moving, lowering windows, changing desktops, etc, whereas the ‘MouseFocus’ model will only change focus when you move the mouse.
  • New “background: unset” property for use in overlays.
  • Allowing relative paths for background images in style files.
  • Allowing matching screen number in ClientPattern.
  • Removed rootcommand from init, as fbsetbg is run automatically nowadays.
  • Removed line style resources from init file.

In any case, we hope to get more into the ‘flux’ way of doing things, aka release early and often. So, have fun with this release.

Personal note from Mathias: This one is dedicated to the first official ‘fluxbaby’ on the planet: my daughter Karo, born on 6th of November 2010. Which is, btw, the birthday of Henrik as well 🙂

The Fluxbox Team 

Non ho resistito, ho dovuto assolutamente compilarla!

Presto il feedback!

Questa è una guida per quelle poche persone che hanno ancora a che fare con quei vecchi computer che fanno il boot solo da floppy disk, e che quindi non supportano il boot da chiavetta usb.

Alle volte è abbastanza aggiornare il bios per risolvere il problema (almeno così mi dicono). Questa operazione  è spesso più semplice da OS Windows, purtroppo (finché verranno sviluppati tool appositi solo per win32).

Se invece si ha a disposizione ancora un lettore floppy e un introvabile floppy disk ancora funzionante, le possibilità di fare il boot da usb sono diverse.

Si potrebbe pensare anche di installare manualmente una versione di Grub sul floppy e configurarlo per bootare la partizione sulla chiavetta usb.

Ma non andiamo a complicarci la vita ( ci ho provato ma ho fallito miseramente ).

Ho quindi optato per un boot manager più semplice e mirato proprio a fare quello che voglio (oltre a decine di altre altre cose): Plop Boot Manager

i passaggi sono molto semplici,

per prima cosa ho formattato il floppy-disk: (controllate che sia veramente /dev/fd0)


fdformat /dev/fd0

Dalla pagina http://www.plop.at/en/bootmanager.html#runflp ho scaricato l’immagine per i fd:


wget http://download.plop.at/files/bootmngr/plpbt-5.0.11-2.zip

unzip plpbt-*.zip

copiato l’immagine plpbt.img su floppy con il brutale dd:


cd plpbt-*

dd if=plpbt.img of=/dev/fd0

cosi si è creato un floppy che al boot farà scegliere da dove avviare il sistema operativo

per automatizzare il tutto scaricare da http://www.plop.at/en/bootmanager.html#plpcfgbt  i sorgenti del editor delle impostazioni di plop bt:


wget http://download.plop.at/files/bootmngr/plpcfgbt-0.9.zip

unzip plpcfgbt-0.9.zip  cd plpcfgbt-*/src

Compilarlo:

make

montare il floppy e quindi dare:


./plpcfgbt  hiddenusb  /`mount_point_floppy`/plpbt.bin

ed ecco che ogni volta che sarà fatto il boot da quel floppy verrà avviato l’OS sulla chiavetta usb inserita.

consiglio: Le possibilità di Plop Boot Manager sono davvero tante, lo si può avviare anche da cd, da grub, grub2,Windows boot menu, Syslinux, LILO, network.

È anche possibile installarlo nella EPROM della macchina 0.0.

[via Plop Boot Manager]

Per montare una cartella di un server ssh ho trovato utile il programma sshfs.

Installazione da sorgenti:

dipendenze: FUSE 2.2 , glib2.0 devel package.

quindi otteniamo i sorgenti da: http://sourceforge.net/projects/fuse/files/sshfs-fuse/

quindi:


tar xvf ssh-fuse*.tar.gz

cd sshfs-fuse*/

./configure

make

make install #da utente root

Utilizzo:

per prima cosa creiamo la cartella dove monteremo la condivisione:


mkdir /media/ssh/

facciamo in modo che abbia come proprietario l’utente che utilizzerà questa cartella:


chown <user> /media/shh/

consentiamo a fuse il mount da utenti diversi da root e fuse:


echo user_allow_other >> /etc/fuse.conf

quindi ora dall’utente proprietario del punto di mount:


sshfs <uetnte_remoto>:hostname: /media/ssh/ -o allow_other

per smontare la condivisione:

fusermount -u /media/ssh/

 

Preciso solo una cosa: non è l’ennesima distribuzione linux bensi:

Cooperative Linux, spesso abbreviato in CoLinux, è un software che permette a Microsoft Windows e al Kernel Linux di funzionare in contemporanea sullo stesso computer.

[…]

Il termine “cooperativa” indica due entità che lavorano in parallelo. Infatti Cooperative Linux trasforma i due sistemi operativi in due grandi coroutines, nelle quali ogni kernel decide quando ridare il controllo all’altro kernel. Il kernel Linux viene eseguito in ambiente Win32 come processo in modalità privilegiata. Il processo opera sull’hardware in multitasking cooperativo con il kernel Windows, assumendo quando necessario il controllo dell’MMU e servendosi di periferiche virtuali per la gestione dell’I/O.

[Fonte Wikipedia ]

In pratica quello che Vituozzo è su Linux. CoLinux invece gira in ambiente Win32.

Per i binari e/o i sorgenti vi lascio il sito web del progetto: http://www.colinux.org/

AGGIORNATO per la versione 10.0 di xbmc il 17 Feb 2011

L’elenco delle dipendenze di XBMC per linux è elencata nel file README.linux nella cartella dei sorgenti:

debhelper (>= 7.0.50), quilt, python-support, cmake,
 autotools-dev, autoconf, automake, unzip, libboost-dev,
 libgl1-mesa-dev | libgl-dev, libglu-dev, libglew-dev, libmad0-dev, libjpeg-dev,
 libsamplerate-dev, libogg-dev, libvorbis-dev, libvorbisenc2, libfreetype6-dev,
 libfontconfig-dev, libbz2-dev, libfribidi-dev, libsqlite3-dev,
 libmysqlclient-dev, libasound-dev, libpng-dev, libpcre3-dev, liblzo2-dev,
 libcdio-dev, libsdl-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev, libenca-dev,
 libjasper-dev, libxt-dev, libxtst-dev, libxmu-dev, libxinerama-dev, libcurl3,
 libcurl4-gnutls-dev | libcurl-dev, libdbus-1-dev, libhal-storage-dev,
 libhal-dev, libpulse-dev, libavahi-common-dev, libavahi-client-dev,
 libxrandr-dev, libavcodec-dev, libavformat-dev, libavutil-dev, libpostproc-dev,
 libswscale-dev, liba52-dev, libdts-dev, libfaad-dev, libmp4ff-dev,
 libmpeg2-4-dev, libass-dev, libflac-dev, libwavpack-dev,
 python-dev, gawk, gperf, nasm [!amd64], libcwiid1-dev, libbluetooth-dev,
 zlib1g-dev, libmms-dev, libsmbclient-dev, libtiff4-dev, libiso9660-dev, libssl-dev,
 libmicrohttpd-dev, libmodplug-dev, libssh-dev, gettext, cvs, libtool

(i nomi dei pacchetti cambiano da distro a distro)
per esempio leggendo il README.ubuntu le dipendenze per tutte le versioni di Ubuntu superiori alla 7.04 sono le seguenti:

subversion make g++ gcc gawk pmount libtool nasm automake cmake gperf unzip bison libsdl-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libfribidi-dev liblzo2-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound-dev python-sqlite libglew-dev libcurl3 libcurl4-gnutls-dev x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmad0-dev libogg-dev libvorbisenc2 libsmbclient-dev libmysqlclient-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libfaac-dev libenca-dev libxt-dev libxtst-dev libxmu-dev libpng-dev libjpeg-dev libpulse-dev mesa-utils libcdio-dev libsamplerate-dev libmms-dev libmpeg3-dev libfaad-dev libflac-dev libiso9660-dev libass-dev libssl-dev fp-compiler gdc libwavpack-dev libmpeg2-4-dev libmicrohttpd-dev libmodplug-dev libssh-dev gettext cvs

e si possono installare con due semplici comandi:

sudo add-apt-repository ppa:team-xbmc-svn/ppa
##se le librerie della vostra distro sono troppo vecchie aggiungete anche questo repo
#sudo add-apt-repository ppa:team-xbmc/ppa
sudo apt-get update
sudo apt-get build-dep xbmc-dmo

( documentazione dei primo repository e del secondo repository )

Per le distro Debian è necessario il repository Debian Multimedia .
quindi aggiungere le seguenti righe al file /etc/apt/sources.list (se non già presenti)

deb http://www.debian-multimedia.org squeeze main non-free
deb-src http://www.debian-multimedia.org squeeze main non-free

quindi dare:

wget http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2010.12.26_all.deb
#se il link sopra non funziona recuperare il link corretto alla pagina di debian multimedia

dpkg -i debian-multimedia-keyring_2010.12.26_all.deb

apt-get update

e controllare che non ci siano errori.

Sulla mia Squeeze ho eseguito i seguenti comanti

wget http://mirrors.xbmc.org/releases/source/xbmc-10.0.tar.gz
tar xfvj xbmc-10.0.tar.gz
##in alternativa con subversion:
#svn co https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk/ xbmc
apt-get build-dep xbmc-dmo
apt-get install autoconf build-essential libtool
cd xbmc*
./bootstrap
./configure
make -j 2
make -C lib/addons/script.module.pil
make -C lib/addons/script.module.pysqlite
make install

se la compilazione fallisce riportando un errore riferito alla libdvdread eseguire questo comando nel terminale dalla posizione della cartella contenente i sorgenti.

cat xbmc/cores/dvdplayer/Codecs/libdvd/libdvdread/misc/dvdread-config.sh >> xbmc/cores/dvdplayer/Codecs/libdvd/libdvdread/obj/dvdread-config
chmod 0755 xbmc/cores/dvdplayer/Codecs/libdvd/libdvdread/obj/dvdread-config

Dipendenze per i driver grafici e per i codec H.264:

apt-get install mesa-utils mplayer-nogui

LE DIPENDENZE PER DEBIAN SQUEEZE DELLA NUOVA VERSIONE DI XBMC (10.0) SONO:

autoconf autopoint binutils build-essential ccache cmake cmake-data comerr-dev debhelper diffstat dpkg-dev emacsen-common fakeroot g++ g++-4.4 gawk gcc gcc-4.4 gettext git  gperf html2text intltool-debian krb5-multidev liba52-0.7.4-dev libaa1-dev libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libartsc0  libartsc0-dev libasound2-dev libass-dev libaudio-dev libaudio2 libaudiofile-dev libavahi-client-dev libavahi-common-dev libavcodec-dev libavcore-dev libavformat-dev  libavutil-dev libbluetooth-dev libboost-dev libboost1.42-dev libbz2-dev libc-dev-bin libc6-dev libcaca-dev libcdio-dev libcrystalhd-dev libcrystalhd2 libcurl3  libcurl4-gnutls-dev libcwiid-dev libcwiid1 libdbus-1-dev libdc1394-22-dev libdca-dev libdirac-decoder0 libdirac-dev libdirectfb-dev libdirectfb-extra libdpkg-perl  libdts-dev libenca-dev liberror-perl libesd0-dev libexpat1-dev libfaac-dev libfaad-dev libflac-dev libfontconfig1-dev libfreetype6-dev libfribidi-dev libftgl-dev  libftgl2 libgcrypt11-dev libgl1-mesa-dev libglew1.5 libglew1.5-dev libglib2.0-dev libglu1-mesa-dev libgnutls-dev libgpg-error-dev libgsm1-dev libhal-dev  libhal-storage-dev libice-dev libidn11-dev libiso9660-7 libiso9660-dev libjasper-dev libjpeg62-dev libkrb5-dev libldap2-dev liblzo2-2 liblzo2-dev libmad0-dev  libmail-sendmail-perl libmicrohttpd-dev libmicrohttpd5 libmikmod2 libmikmod2-dev libmms-dev libmodplug-dev libmp3lame-dev libmpcdec-dev libmpeg2-4-dev  libmysqlclient-dev libmysqlclient16 libncurses5-dev libogg-dev libopencore-amrnb-dev libopencore-amrwb-dev liborc-0.4-dev libpcre3-dev libpcrecpp0 libpng12-dev  libpostproc-dev libpthread-stubs0 libpthread-stubs0-dev libpulse-browse0 libpulse-dev libraw1394-dev librtmp-dev libsamplerate0 libsamplerate0-dev  libschroedinger-dev libsdl-image1.2 libsdl-image1.2-dev libsdl-mixer1.2 libsdl-mixer1.2-dev libsdl1.2-dev libslang2-dev libsm-dev libsmbclient-dev libsmpeg-dev  libsmpeg0 libsqlite3-dev libssh2-1 libssl-dev libstdc++6-4.4-dev libsvga1-dev libswscale-dev libsys-hostname-long-perl libsysfs-dev libtasn1-3-dev libtheora-dev  libtiff4-dev libtiffxx0c2 libunistring0 libva-dev libva-glx1 libva-tpi1 libvdpau-dev libvdpau1 libvorbis-dev libwavpack-dev libx11-dev libx264-dev libxau-dev  libxcb1-dev libxdmcp-dev libxext-dev libxi-dev libxinerama-dev libxmlrpc-c3 libxmu-dev libxmu-headers libxrandr-dev libxrender-dev libxt-dev libxtst-dev  libxvidcore4-dev linux-libc-dev make manpages-dev mesa-common-dev mysql-common nasm pkg-config po-debconf python2.6-dev quilt rsync sharutils x11proto-core-dev  x11proto-input-dev x11proto-kb-dev x11proto-randr-dev x11proto-record-dev x11proto-render-dev x11proto-xext-dev x11proto-xinerama-dev xtrans-dev zip zlib1g-dev

Dipendenze che, su Squeeze, si installano con un semplice:

apt-get build-dep xbmc

dipendenze su lenny per la versione precendente di XBMC 9.x :

apt-get -y install subversion make g++ gcc curl gawk pmount libtool nasm yasm automake cmake gperf zip unzip bison libsdl-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libfribidi-dev liblzo2-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound-dev python-sqlite libglew-dev libcurl3 libcurl4-gnutls-dev libxrandr-dev libxrender-dev libmad0-dev libogg-dev libvorbisenc2 libsmbclient-dev libmysqlclient-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libfaac-dev libenca-dev libxt-dev libxtst-dev libxmu-dev libpng-dev libjpeg-dev libpulse-dev mesa-utils libcdio-dev libsamplerate-dev libmms-dev libmpeg3-dev libfaad-dev libflac-dev libiso9660-dev libass-dev libssl-dev fp-compiler gdc libwavpack-dev libmpeg2-4-dev libmicrohttpd-dev libmodplug-dev libssh-dev gettext cvs libdvd-dev libdvdnav-dev
apt-get -y install build-essential debhelper dpkg-dev fakeroot html2text intltool-debian liba52-0.7.4-dev libavcodec-dev libavcodec52 libavformat-dev libavformat52 libavutil-dev libavutil49 libbluetooth-dev libcwiid-dev libcwiid1 libcwiid1-dev libdca-dev libdca0 libdts-dev libgsm1 libmail-sendmail-perl libmpcdec-dev libmpcdec3 liboil0.3 libpostproc-dev libpostproc51 libschroedinger-1.0-0 libspeex1 libswscale-dev libswscale0 libsys-hostname-long-perl libtheora0 libvdpau-dev libvdpau1 libxinerama-dev patch po-debconf python-dev python2.6-dev x11proto-xinerama-dev xz-utils

Collegamenti utili:

conoscere numero di file in un archivio

$cat archive.tar.bz2 | tar xjv | wc -l
revealed 100 files in the tar archive

Numero di file in una cartella:

$ find ./ -name \* -print | wc -l
This also reveled 100 files

il comando è un po astruso ma è l’unico che ho trovato che funziona.
il comando ls raggruppa i file dando risultati non validi

su server Debian based:


aptitude install apache2 mysql-server mysql-client libapache2-mod-auth-mysql

successivamente abilitare i moduli installati


a2enmod dav_fs
a2enmod dav
a2enmod auth_mysql

WebDAV può utilizzare mysql per l’autenticazione, creando una tabella contenente:

  • username
  • passwd
  • groups

(ovviamente per ragioni di sicurezza è consigliato creare un utente MySQL (web_dav) con password (password_di_web_dav) e con privilegi limitati

mysqladmin -u root -p create webdav
mysql -u root -p
GRANT SELECT, INSERT, UPDATE, DELETE ON webdav.* TO 'web_dav'@'localhost' IDENTIFIED BY 'password_di_web_dav';
GRANT SELECT, INSERT, UPDATE, DELETE ON webdav.* TO 'web_dav'@'localhost.localdomain' IDENTIFIED BY 'password_di_web_dav';
FLUSH PRIVILEGES;

USE webdav;
create table mysql_auth (
username char(25) not null,
passwd char(32),
groups char(25),
primary key (username)
);

ora popoliamo il database con gli utenti.
in questo esempio:
username: user_webdav
passwd: user_webdav_pswd
groups: webdav_group

INSERT INTO `mysql_auth` (`username`, `passwd`, `groups`) VALUES('user_webdav', MD5('user_webdav_pswd'), 'webdav_group');

se preferite usare phpmyadmin vi ricordo che per “giocare” a criptare in md5 basta dare:

echo -n "password" | md5sum

in una shell linux

ora manca solo di creare il VirtualHost in Apache che utilizzi WebDAV, quindi modificare con gli opportuni cambiamenti il file di configurazione riportato:

NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/share
<Directory /var/www/share>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

Alias /webdav /var/www/share
<Location /webdav>
DAV On
AuthBasicAuthoritative Off
AuthUserFile /dev/null
AuthMySQL On
AuthName “webdav”
AuthType Basic
Auth_MySQL_Host localhost
Auth_MySQL_User web_dav
Auth_MySQL_Password password_di_web_dav
AuthMySQL_DB webdav
AuthMySQL_Password_Table mysql_auth
Auth_MySQL_Username_Field username
Auth_MySQL_Password_Field passwd
Auth_MySQL_Empty_Passwords Off
Auth_MySQL_Encryption_Types PHP_MD5
Auth_MySQL_Authoritative On
require valid-user
</Location>
</VirtualHost>

la directory /var/www/share deve esistere quindi

mkdir -p /var/www/share

Lato client si può usare cadaver (molto simile a un client ftp), il filesystem davfs2, Konqueror o anche gnome Nautilus 😉

presto un aggiornamento della guida per consentire l’accesso anche da client Windows.

Una comodità, a volte irrinunciabile, se si devono digitare spesso gli stessi comandi è crearsi degli script bash, o con altro interprete, in modo anche da non doverci per forza ricordare, anche semplici, serie di comandi (io lo faccio per lo più per pigrizia).

Un esempio della mia pigrizia è stato la creazione di questo script:

#!/bin/bash
sudo aptitude update
sudo aptitude -y dist-upgrade
sudo aptitude -y install

(davvero da fare schifo)

Uno script più utile invece mi permette di sapere il mio ip senza dover aprire il browser e farlo puntare a http://checkip.dyndns.org/

ma semplicemente così:

xXx@terminale:~$ myip
212.227.101.236
xXx@terminale:~$

myip è un file in /usr/bin/
eccone il contenuto:

xXx@terminale:~$cat /usr/bin/myip
#!/bin/bash
wget http://checkip.dyndns.org/ -q -O - |
grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'

xXx@terminale:~$

ho semplicemente copiato quelle 3 righe trovate su un forum (credo di ubuntu in una discussione su conky) nel file /usr/bin/myip senza dimenticarmi di dargli i permessi di esecuzione:

sudo chmod +x /usr/bin/myip

Un’altro script utile che spesso incontro nelle guide per aggiungere repository e questo:

sudo apt-get update 2> /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && gpg --export --armor $key | sudo apt-key add -; done

che permette di aggiungere tutte chiavi pubbliche (le PGP di apt) senza dover digitare il codice della chiave (sfrutta l’output di apt)