Cpan auf Fritzbox: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Einleitungstext überarbeitet)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
= Cpan (genauer Cpanmin) auf FritzBox 7390 einrichten =
CPAN (Comprehensive Perl Archive Network) ist ein Online Repository für Perl-Module. Um dieses Repository nutzen zu können, wird üblicherweise das CPAN-Modul benutzt. Für die Benutzung von CPAN auf der [[AVM Fritz!Box|FritzBox]] wird im Folgenden die Shell [http://search.cpan.org/~miyagawa/App-cpanminus-1.6939/lib/App/cpanminus.pm Cpanminus] verwendet.
Mit Cpanmin können die meisten Perl-Pakete auf der FritzBox installiert werden (z.B. DBI das für DbLog benötigt wird). Dadurch umgeht man die oft störende Einschränkungen der FritzBox. Die Installation auf anderen FritzBox-Typen wurde bis jetzt nicht getestet, könnte aber auch funktionieren.
 
Für die Installation werden Debian-mips-Pakete von debian.org verwendet. Die Pakete werden einfach entpackt und auf der FritzBox in entsprechenden Verzeichnissen verteilt. Es müssen selbstverständlich Abhängigkeiten von den Paketen erfüllt sein. Dadurch ist es möglich die meisten Pakete die Debian für mips-Architektur bereitstellt nach zu installieren.  
== CPANMINUS ==
Mit Cpanminus können die meisten Perl-Pakete auf der FritzBox 7390 installiert werden (z.B. DBI, das für DbLog benötigt wird). Dadurch umgeht man die oft störenden Einschränkungen der FritzBox. Die Installation auf anderen FritzBox-Typen wurde bis jetzt nicht getestet, könnte aber auch funktionieren.
 
Für die Installation werden Debian-mips-Pakete von debian.org verwendet. Die Pakete werden einfach entpackt und auf der FritzBox in entsprechenden Verzeichnissen verteilt. Es müssen selbstverständlich Abhängigkeiten von den Paketen erfüllt sein. Dadurch ist es möglich, die meisten Pakete, die Debian für die  Mips-Architektur bereitstellt, nachzuinstallieren.  


== Voraussetzungen ==
== Voraussetzungen ==
* FritzBox 7390 mit Freetz als USB-Root
* FritzBox 7390 mit Freetz als USB-Root.
* Da die Pakete einiges an Speicher benötigen, sollte die rootfs-Partition ausreichende Größe haben. 512MB reichen bei mir locker.
* Da die Pakete einiges an Speicher benötigen, sollte die rootfs-Partition ausreichende Größe haben. 512MB sollten ausreichen.
 
== Installationsablauf ==
=== Benötigte Pakete herunterladen ===
Die für die Installation benötigten Pakete werden von debian.org heruntergeladen.


* [http://ftp.de.debian.org/debian/pool/main/e/eglibc/libc6_2.13-38_mips.deb libc6_2.13-38_mips]
* [http://ftp.de.debian.org/debian/pool/main/e/eglibc/libc6-dev_2.13-38_mips.deb libc6-dev_2.13-38_mips]
* [http://ftp.de.debian.org/debian/pool/main/p/perl/perl-base_5.14.2-20_mips.deb perl-base_5.14.2-20_mips]
* [http://ftp.de.debian.org/debian/pool/main/p/perl/perl_5.14.2-20_mips.deb perl_5.14.2-20_mips]
* [http://de.archive.ubuntu.com/ubuntu/pool/main/p/perl/perl-modules_5.14.2-20_all.deb perl-modules_5.14.2-20_all]
* [http://ftp.de.debian.org/debian/pool/main/m/make-dfsg/make_3.81-8.2_mips.deb make_3.81-8.2_mips]
* [http://ftp.debian.org/debian/pool/main/g/gcc-4.6/cpp-4.6_4.6.3-14_mips.deb cpp-4.6_4.6.3-14_mips]
* [http://ftp.de.debian.org/debian/pool/main/g/gcc-defaults/cpp_4.6.3-8_mips.deb cpp_4.6.3-8_mips]
* [http://ftp.debian.org/debian/pool/main/g/gcc-4.6/gcc-4.6-base_4.6.3-14_mips.deb gcc-4.6-base_4.6.3-14_mips]
* [http://ftp.debian.org/debian/pool/main/g/gcc-4.6/gcc-4.6_4.6.3-14_mips.deb gcc-4.6_4.6.3-14_mips]
* [http://ftp.de.debian.org/debian/pool/main/g/gcc-defaults/gcc_4.6.3-8_mips.deb gcc_4.6.3-8_mips]
* [http://ftp.de.debian.org/debian/pool/main/b/binutils/binutils_2.22-8_mips.deb binutils_2.22-8_mips]
* [http://ftp.de.debian.org/debian/pool/main/m/mpclib/libmpc2_0.9-4_mips.deb libmpc2_0.9-4_mips]
* [http://ftp.debian.org/debian/pool/main/m/mpfr4/libmpfr4_3.1.0-5_mips.deb libmpfr4_3.1.0-5_mips]
* [http://ftp.de.debian.org/debian/pool/main/g/gmp/libgmp10_5.0.5+dfsg-2_mips.deb libgmp10_5.0.5+dfsg-2_mips]
* [http://ftp.de.debian.org/debian/pool/main/o/openssl/openssl_1.0.1e-2_mips.deb openssl_1.0.1e-2_mips]
* [http://ftp.de.debian.org/debian/pool/main/o/openssl/libssl1.0.0_1.0.1e-2_mips.deb libssl1.0.0_1.0.1e-2_mips]
* [http://ftp.de.debian.org/debian/pool/main/o/openssl/libssl-dev_1.0.1e-2_mips.deb libssl-dev_1.0.1e-2_mips]
* [http://ftp.de.debian.org/debian/pool/main/g/grep/grep_2.6.3-3_mips.deb grep_2.6.3-3_mips]
* [http://security.debian.org/debian-security/pool/updates/main/l/linux-2.6/linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips.deb linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips]


=== Benötigte .deb Pakete entpacken ===
Empfohlenes Werkzeug zum Entpacken: [http://www.midnight-commander.org/ MidnightCommander]; damit werden Symlinks auch als solche entpackt (dpkg -x macht die zu Hardlinks). In MidnightCommander auf die .deb Datei gehen, mit Enter die Datei öffnen und Dateien einfach rauskopieren.


== grober Installationsablauf ==
=== Entpackte Pakete auf die Fritzbox kopieren ===
# Benötigte .deb Pakete von debian.org besorgen
Die Fritzbox mit dem Befehl <code>sshfs 192.168.0.1:/ /mnt/fritz.box</code> "mounten". Wenn die Fritzbox vor dem Entpacken gemountet wurde, kann auch direkt auf die Fritzbox entpackt werden.
# Pakete entpacken und auf die FritzBox kopieren
# Pakete in entsprechende Verzeichnisse auf der FritzBox verteilen
# Cpanmin einrichten


===  Symlink löschen ===
Falls miniperl installiert ist, muss ein symbolischer Link wie folgt gelöscht werden:
:<code>rm /usr/bin/perl</code>


=== Pakete in entsprechende Verzeichnisse auf der FritzBox verteilen ===
Für Perl wird libc6 benötigt


== ausführlicher Installationsablauf ==
:<code>cp -rd libc6_2.13-38_mips/CONTENT/etc/. /etc/.</code>
=== Benötigte Pakete runterladen ===
:<code>cp -rd libc6_2.13-38_mips/CONTENT/lib/. /lib/.</code>
Für die Installation benötigte Pakete werden von [http://www.debian.org/distrib/packages http://www.debian.org/distrib/packages] heruntergeladen.
:<code>cp -rd libc6_2.13-38_mips/CONTENT/usr/lib/. /usr/lib/.</code>


<dl><dd>[http://ftp.de.debian.org/debian/pool/main/e/eglibc/libc6_2.13-38_mips.deb libc6_2.13-38_mips]
:<code>cp -rd libc6-dev_2.13-38_mips/usr/include/. /usr/include/.</code>
</dd><dd>[http://ftp.de.debian.org/debian/pool/main/e/eglibc/libc6-dev_2.13-38_mips.deb libc6-dev_2.13-38_mips]
:<code>cp -rd libc6-dev_2.13-38_mips/usr/lib/. /usr/lib/.</code>
</dd><dd>[http://ftp.de.debian.org/debian/pool/main/p/perl/perl-base_5.14.2-20_mips.deb perl-base_5.14.2-20_mips]
</dd><dd>[http://ftp.de.debian.org/debian/pool/main/p/perl/perl_5.14.2-20_mips.deb perl_5.14.2-20_mips]
</dd><dd>[http://de.archive.ubuntu.com/ubuntu/pool/main/p/perl/perl-modules_5.14.2-20_all.deb perl-modules_5.14.2-20_all]
</dd><dd>[http://ftp.de.debian.org/debian/pool/main/m/make-dfsg/make_3.81-8.2_mips.deb make_3.81-8.2_mips]
</dd><dd>[http://ftp.debian.org/debian/pool/main/g/gcc-4.6/cpp-4.6_4.6.3-14_mips.deb cpp-4.6_4.6.3-14_mips]
</dd><dd>[http://ftp.de.debian.org/debian/pool/main/g/gcc-defaults/cpp_4.6.3-8_mips.deb cpp_4.6.3-8_mips]
</dd><dd>[http://ftp.debian.org/debian/pool/main/g/gcc-4.6/gcc-4.6-base_4.6.3-14_mips.deb gcc-4.6-base_4.6.3-14_mips]
</dd><dd>[http://ftp.debian.org/debian/pool/main/g/gcc-4.6/gcc-4.6_4.6.3-14_mips.deb gcc-4.6_4.6.3-14_mips]
</dd><dd>[http://ftp.de.debian.org/debian/pool/main/g/gcc-defaults/gcc_4.6.3-8_mips.deb gcc_4.6.3-8_mips]
</dd><dd>[http://ftp.de.debian.org/debian/pool/main/b/binutils/binutils_2.22-8_mips.deb binutils_2.22-8_mips]
</dd><dd>[http://ftp.de.debian.org/debian/pool/main/m/mpclib/libmpc2_0.9-4_mips.deb libmpc2_0.9-4_mips]
</dd><dd>[http://ftp.debian.org/debian/pool/main/m/mpfr4/libmpfr4_3.1.0-5_mips.deb libmpfr4_3.1.0-5_mips]
</dd><dd>[http://ftp.de.debian.org/debian/pool/main/g/gmp/libgmp10_5.0.5+dfsg-2_mips.deb libgmp10_5.0.5+dfsg-2_mips]
</dd><dd>[http://ftp.de.debian.org/debian/pool/main/o/openssl/openssl_1.0.1e-2_mips.deb openssl_1.0.1e-2_mips]
</dd><dd>[http://ftp.de.debian.org/debian/pool/main/o/openssl/libssl1.0.0_1.0.1e-2_mips.deb libssl1.0.0_1.0.1e-2_mips]
</dd><dd>[http://ftp.de.debian.org/debian/pool/main/o/openssl/libssl-dev_1.0.1e-2_mips.deb libssl-dev_1.0.1e-2_mips]
</dd><dd>[http://ftp.de.debian.org/debian/pool/main/g/grep/grep_2.6.3-3_mips.deb grep_2.6.3-3_mips]
</dd><dd>[http://security.debian.org/debian-security/pool/updates/main/l/linux-2.6/linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips.deb linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips]
</dd></dl>
=== Benötigte .deb Pakete entpacken ===
Ich verwende dazu MidnightCommander, damit werden Symlinks auch als solche entpackt (dpkg -x macht die zu Hardlinks). In MidnightCommander auf die .deb Datei gehen, mit Enter die Datei öffnen und Dateien einfach rauskopieren.


=== Enpackte Pakete auf die Fritzbox kopieren ===
Perl installieren:
Ich mounte dazu einfach die Fritzbox mit sshfs "sshfs 192.168.0.1:/ /mnt/fritz.box". Wenn man die Fritzbox vor dem Entpacken gemountet hat, kann auch direkt auf die Fritzbox entpackt werden.
:<code>mkdir /usr/share/perl</code>
:<code>cp -rd perl-base_5.14.2-20_mips/CONTENT/usr/bin/. /usr/bin/.</code>
:<code>cp -rd perl-base_5.14.2-20_mips/CONTENT/usr/lib/. /usr/lib/.</code>
:<code>cp -rd perl-base_5.14.2-20_mips/CONTENT/usr/share/perl/. /usr/share/perl/.</code>


===  Symlink falls miniperl installiert ist löschen ===
:<code>cp -rd perl_5.14.2-20_mips/CONTENT/usr/bin/. /usr/bin/.</code>
<nowiki>rm /usr/bin/perl</nowiki>
:<code>cp -rd perl_5.14.2-20_mips/CONTENT/usr/lib/. /usr/lib/.</code>
=== Pakete in entsprechenden Verzeichnissen auf der FritzBox verteilen ===
Für Perl wird libc6 benötigt


<nowiki>cp -rd libc6_2.13-38_mips/CONTENT/etc/. /etc/.
:<code>cp -rd perl-modules_5.14.2-20_all/CONTENT/etc/. /etc/.</code>
cp -rd libc6_2.13-38_mips/CONTENT/lib/. /lib/.
:<code>cp -rd perl-modules_5.14.2-20_all/CONTENT/usr/share/perl/. /usr/share/perl/.</code>
cp -rd libc6_2.13-38_mips/CONTENT/usr/lib/. /usr/lib/.</nowiki>
<nowiki>cp -rd libc6-dev_2.13-38_mips/usr/include/. /usr/include/.
cp -rd libc6-dev_2.13-38_mips/usr/lib/. /usr/lib/.</nowiki>
Perl insatllieren


<nowiki>mkdir /usr/share/perl
cp -rd perl-base_5.14.2-20_mips/CONTENT/usr/bin/. /usr/bin/.
cp -rd perl-base_5.14.2-20_mips/CONTENT/usr/lib/. /usr/lib/.
cp -rd perl-base_5.14.2-20_mips/CONTENT/usr/share/perl/. /usr/share/perl/.</nowiki>
<nowiki>cp -rd perl_5.14.2-20_mips/CONTENT/usr/bin/. /usr/bin/.
cp -rd perl_5.14.2-20_mips/CONTENT/usr/lib/. /usr/lib/.</nowiki>
<nowiki>cp -rd perl-modules_5.14.2-20_all/CONTENT/etc/. /etc/.
cp -rd perl-modules_5.14.2-20_all/CONTENT/usr/share/perl/. /usr/share/perl/.</nowiki>
Außerdem wird Make benötigt
Außerdem wird Make benötigt


<nowiki>cp -rd make_3.81-8.2_mips/CONTENT/usr/bin/. /usr/bin/.
:<code>cp -rd make_3.81-8.2_mips/CONTENT/usr/bin/. /usr/bin/.</code>
mkdir -p /usr/share/locale/de
:<code>mkdir -p /usr/share/locale/de</code>
cp -rd make/usr/share/locale/de/. /usr/share/locale/de/.</nowiki>
:<code>cp -rd make/usr/share/locale/de/. /usr/share/locale/de/.</code>
 
Kompiler installieren
Kompiler installieren


<nowiki>cp -rd cpp-4.6_4.6.3-14_mips/CONTENT/usr/bin/. /usr/bin/.
:<code>cp -rd cpp-4.6_4.6.3-14_mips/CONTENT/usr/bin/. /usr/bin/.</code>
cp -rd cpp-4.6_4.6.3-14_mips/CONTENT/usr/lib/. /usr/lib/.</nowiki>
:<code>cp -rd cpp-4.6_4.6.3-14_mips/CONTENT/usr/lib/. /usr/lib/.</code>
<nowiki>cp -rd cpp_4.6.3-8_mips/CONTENT/usr/bin/. /usr/bin/.
 
ln -s /usr/bin/gcc /usr/bin/cc</nowiki>
:<code>cp -rd cpp_4.6.3-8_mips/CONTENT/usr/bin/. /usr/bin/.</code>
<nowiki>cp -rd gcc-4.6-base_4.6.3-14_mips/CONTENT/usr/lib/. /usr/lib/.</nowiki>
:<code>ln -s /usr/bin/gcc /usr/bin/cc</code>
<nowiki>cp -rd gcc-4.6_4.6.3-14_mips/CONTENT/usr/bin/. /usr/bin/.
 
cp -rd gcc-4.6_4.6.3-14_mips/CONTENT/usr/lib/. /usr/lib/.</nowiki>
:<code>cp -rd gcc-4.6-base_4.6.3-14_mips/CONTENT/usr/lib/. /usr/lib/.</code>
<nowiki>cp -rd gcc_4.6.3-8_mips/CONTENT/usr/bin/. /usr/bin/.</nowiki>
 
<nowiki>cp -rd binutils_2.22-8_mips/CONTENT/usr/bin/. /usr/bin/.
:<code>cp -rd gcc-4.6_4.6.3-14_mips/CONTENT/usr/bin/. /usr/bin/.</code>
cp -rd binutils_2.22-8_mips/CONTENT/usr/lib/. /usr/lib/.
:<code>cp -rd gcc-4.6_4.6.3-14_mips/CONTENT/usr/lib/. /usr/lib/.</code>
cp -rd binutils_2.22-8_mips/CONTENT/usr/share/locale/de/. /usr/share/locale/de/.</nowiki>
 
<nowiki>cp -rd libmpc2_0.9-4_mips/CONTENT/usr/lib/. /usr/lib/.
:<code>cp -rd gcc_4.6.3-8_mips/CONTENT/usr/bin/. /usr/bin/.</code>
cp -rd libmpfr4_3.1.0-5_mips/CONTENT/usr/lib/. /usr/lib/.
 
cp -rd libgmp10_5.0.5+dfsg-2_mips/CONTENT/usr/lib/. /usr/lib/.</nowiki>
:<code>cp -rd binutils_2.22-8_mips/CONTENT/usr/bin/. /usr/bin/.</code>
<nowiki>ln -s /usr/bin/gcc /usr/bin/cc
:<code>cp -rd binutils_2.22-8_mips/CONTENT/usr/lib/. /usr/lib/.</code>
ln -s /usr/lib/gcc/mips-linux-gnu/4.6/cc1 /usr/bin/cc1</nowiki>
:<code>cp -rd binutils_2.22-8_mips/CONTENT/usr/share/locale/de/. /usr/share/locale/de/.</code>
 
:<code>cp -rd libmpc2_0.9-4_mips/CONTENT/usr/lib/. /usr/lib/.</code>
:<code>cp -rd libmpfr4_3.1.0-5_mips/CONTENT/usr/lib/. /usr/lib/.</code>
:<code>cp -rd libgmp10_5.0.5+dfsg-2_mips/CONTENT/usr/lib/. /usr/lib/.</code>
 
:<code>ln -s /usr/bin/gcc /usr/bin/cc</code>
:<code>ln -s /usr/lib/gcc/mips-linux-gnu/4.6/cc1 /usr/bin/cc1</code>
 
OpenSSL installieren
OpenSSL installieren


<nowiki>cp -rd openssl_1.0.1e-2_mips/CONTENT/etc/. /etc/.
:<code>cp -rd openssl_1.0.1e-2_mips/CONTENT/etc/. /etc/.</code>
cp -rd openssl_1.0.1e-2_mips/CONTENT/usr/bin/. /usr/bin/.
:<code>cp -rd openssl_1.0.1e-2_mips/CONTENT/usr/bin/. /usr/bin/.</code>
cp -rd openssl_1.0.1e-2_mips/CONTENT/usr/lib/. /usr/lib/.</nowiki>
:<code>cp -rd openssl_1.0.1e-2_mips/CONTENT/usr/lib/. /usr/lib/.</code>
<nowiki>cp -rd libssl1.0.0_1.0.1e-2_mips/usr/lib/. /usr/lib/.</nowiki>
 
<nowiki>cp -rd libssl-dev_1.0.1e-2_mips/CONTENT/usr/include/. /usr/include/.
:<code>cp -rd libssl1.0.0_1.0.1e-2_mips/usr/lib/. /usr/lib/.</code>
cp -rd libssl-dev_1.0.1e-2_mips/CONTENT/usr/lib/. /usr/lib/.</nowiki>
 
:<code>cp -rd libssl-dev_1.0.1e-2_mips/CONTENT/usr/include/. /usr/include/.</code>
:<code>cp -rd libssl-dev_1.0.1e-2_mips/CONTENT/usr/lib/. /usr/lib/.</code>
 
Grep ersetzen da Cpan bei Installation von manchen Paketen Probleme damit hat
Grep ersetzen da Cpan bei Installation von manchen Paketen Probleme damit hat


<nowiki>cp -rd grep_2.6.3-3_mips/CONTENT/bin/. /bin/.
:<code>cp -rd grep_2.6.3-3_mips/CONTENT/bin/. /bin/.</code>
cp -rd grep_2.6.3-3_mips/CONTENT/usr/bin/. /usr/bin/.
:<code>cp -rd grep_2.6.3-3_mips/CONTENT/usr/bin/. /usr/bin/.</code>
cp -rd grep_2.6.3-3_mips/CONTENT/usr/share/locale/de/. /usr/share/locale/de/.</nowiki>
:<code>cp -rd grep_2.6.3-3_mips/CONTENT/usr/share/locale/de/. /usr/share/locale/de/.</code>
 
Includes kopieren
Includes kopieren


<nowiki>mkdir /usr/include/linux
:<code>mkdir /usr/include/linux</code>
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/linux/param.h /usr/include/linux
:<code>cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/linux/param.h /usr/include/linux</code>
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/linux/limits.h /usr/include/linux
:<code>cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/linux/limits.h /usr/include/linux</code>
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/linux/errno.h /usr/include/linux</nowiki>
:<code>cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/linux/errno.h /usr/include/linux</code>
<nowiki>mkdir /usr/include/asm
 
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/ioctls.h /usr/include/asm
:<code>mkdir /usr/include/asm</code>
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/ioctl.h /usr/include/asm
:<code>cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/ioctls.h /usr/include/asm</code>
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/socket.h /usr/include/asm
:<code>cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/ioctl.h /usr/include/asm</code>
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/param.h /usr/include/asm
:<code>cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/socket.h /usr/include/asm</code>
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/sockios.h /usr/include/asm
:<code>cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/param.h /usr/include/asm</code>
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/errno.h /usr/include/asm</nowiki>
:<code>cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/sockios.h /usr/include/asm</code>
<nowiki>mkdir /usr/include/asm-generic
:<code>cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/errno.h /usr/include/asm</code>
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/ioctl.h /usr/include/asm-generic
 
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/socket.h /usr/include/asm-generic
:<code>mkdir /usr/include/asm-generic</code>
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/param.h /usr/include/asm-generic
:<code>cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/ioctl.h /usr/include/asm-generic</code>
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/sockios.h /usr/include/asm-generic
:<code>cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/socket.h /usr/include/asm-generic</code>
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/errno-base.h /usr/include/asm-generic</nowiki>
:<code>cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/param.h /usr/include/asm-generic</code>
:<code>cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/sockios.h /usr/include/asm-generic</code>
:<code>cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/errno-base.h /usr/include/asm-generic</code>




Zeile 128: Zeile 142:
Als Ersatz für Cpan wird Cpanminus verwendet. Normales Cpan benötigt zu viel Arbeitsspeicher, die Fritzbox hängt sich auf.
Als Ersatz für Cpan wird Cpanminus verwendet. Normales Cpan benötigt zu viel Arbeitsspeicher, die Fritzbox hängt sich auf.


<nowiki>rm /usr/bin/cpan
:<code>rm /usr/bin/cpan</code>
wget http://search.cpan.org/CPAN/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.6103.tar.gz
:<code>wget <nowiki>http://search.cpan.org/CPAN/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.6103.tar.gz</nowiki></code>
tar -xzvf App-cpanminus-1.6103.tar.gz
:<code>tar -xzvf App-cpanminus-1.6103.tar.gz</code>
mkdir -p /usr/local/bin
:<code>mkdir -p /usr/local/bin</code>
cp App-cpanminus-1.6103/bin/cpanm /usr/local/bin
:<code>cp App-cpanminus-1.6103/bin/cpanm /usr/local/bin</code>
chmod 755 /usr/bin/cpanm
:<code>chmod 755 /usr/bin/cpanm</code>
ln -s /usr/local/bin/cpanm /usr/bin/cpanm</nowiki>
:<code>ln -s /usr/local/bin/cpanm /usr/bin/cpanm</code>
 
Der Script muss gepatcht werden da wget von Freetz nicht alle Parameter kennt
Der Script muss gepatcht werden da wget von Freetz nicht alle Parameter kennt
:<code>patch /usr/local/bin/cpanm &lt; /var/media/ftp/uStor12/temp/cpanm.patch</code>


<nowiki>patch /usr/local/bin/cpanm &lt; /var/media/ftp/uStor12/temp/cpanm.patch</nowiki>
Jetzt noch noch einmal sauber installieren
Jetzt noch noch einmal sauber installieren
 
:<code>cpanm App::cpanminus</code>
<nowiki>cpanm App::cpanminus</nowiki>




=== Jetzt können benötigte Perl-Module eifach nachinstalliert werden ===
=== Benötigte Perl-Module nachinstallieren ===
Die werden für normalen betrieb von FHEM benötigt:
Die folgenden, für normalen Betrieb von FHEM benötigten Module können jetzt nachinstalliert werden
:<code>cpanm Net::SSLeay</code>
:<code>cpanm IO::Socket::SSL</code>
:<code>cpanm --verbose Device::SerialPort</code>
:<code>cpanm IO::Uncompress::Gunzip</code>
:<code>cpanm HTTP::Request::Common</code>


<nowiki>cpanm Net::SSLeay
Module für DbLog:
cpanm IO::Socket::SSL
:<code>cpanm DBI</code>
cpanm --verbose Device::SerialPort
:<code>cpanm Class::DBI::SQLite</code>
cpanm IO::Uncompress::Gunzip
cpanm HTTP::Request::Common</nowiki>
und die für DbLog:


<nowiki>cpanm DBI
== Weblinks ==
cpanm Class::DBI::SQLite</nowiki>
* [http://www.debian.org/distrib/packages debian.org]
* [http://search.cpan.org/~miyagawa/App-cpanminus-1.6939/lib/App/cpanminus.pm App:cpanminus]
* [http://www.midnight-commander.org/ MidnightCommander] - freier Norton Commander Clone (Dateimanager)


[[Kategorie:HOWTOS]]
[[Kategorie:HOWTOS]]
[[Kategorie:FritzBox]]

Aktuelle Version vom 8. August 2013, 06:54 Uhr

CPAN (Comprehensive Perl Archive Network) ist ein Online Repository für Perl-Module. Um dieses Repository nutzen zu können, wird üblicherweise das CPAN-Modul benutzt. Für die Benutzung von CPAN auf der FritzBox wird im Folgenden die Shell Cpanminus verwendet.

CPANMINUS

Mit Cpanminus können die meisten Perl-Pakete auf der FritzBox 7390 installiert werden (z.B. DBI, das für DbLog benötigt wird). Dadurch umgeht man die oft störenden Einschränkungen der FritzBox. Die Installation auf anderen FritzBox-Typen wurde bis jetzt nicht getestet, könnte aber auch funktionieren.

Für die Installation werden Debian-mips-Pakete von debian.org verwendet. Die Pakete werden einfach entpackt und auf der FritzBox in entsprechenden Verzeichnissen verteilt. Es müssen selbstverständlich Abhängigkeiten von den Paketen erfüllt sein. Dadurch ist es möglich, die meisten Pakete, die Debian für die Mips-Architektur bereitstellt, nachzuinstallieren.

Voraussetzungen

  • FritzBox 7390 mit Freetz als USB-Root.
  • Da die Pakete einiges an Speicher benötigen, sollte die rootfs-Partition ausreichende Größe haben. 512MB sollten ausreichen.

Installationsablauf

Benötigte Pakete herunterladen

Die für die Installation benötigten Pakete werden von debian.org heruntergeladen.

Benötigte .deb Pakete entpacken

Empfohlenes Werkzeug zum Entpacken: MidnightCommander; damit werden Symlinks auch als solche entpackt (dpkg -x macht die zu Hardlinks). In MidnightCommander auf die .deb Datei gehen, mit Enter die Datei öffnen und Dateien einfach rauskopieren.

Entpackte Pakete auf die Fritzbox kopieren

Die Fritzbox mit dem Befehl sshfs 192.168.0.1:/ /mnt/fritz.box "mounten". Wenn die Fritzbox vor dem Entpacken gemountet wurde, kann auch direkt auf die Fritzbox entpackt werden.

Symlink löschen

Falls miniperl installiert ist, muss ein symbolischer Link wie folgt gelöscht werden:

rm /usr/bin/perl

Pakete in entsprechende Verzeichnisse auf der FritzBox verteilen

Für Perl wird libc6 benötigt

cp -rd libc6_2.13-38_mips/CONTENT/etc/. /etc/.
cp -rd libc6_2.13-38_mips/CONTENT/lib/. /lib/.
cp -rd libc6_2.13-38_mips/CONTENT/usr/lib/. /usr/lib/.
cp -rd libc6-dev_2.13-38_mips/usr/include/. /usr/include/.
cp -rd libc6-dev_2.13-38_mips/usr/lib/. /usr/lib/.

Perl installieren:

mkdir /usr/share/perl
cp -rd perl-base_5.14.2-20_mips/CONTENT/usr/bin/. /usr/bin/.
cp -rd perl-base_5.14.2-20_mips/CONTENT/usr/lib/. /usr/lib/.
cp -rd perl-base_5.14.2-20_mips/CONTENT/usr/share/perl/. /usr/share/perl/.
cp -rd perl_5.14.2-20_mips/CONTENT/usr/bin/. /usr/bin/.
cp -rd perl_5.14.2-20_mips/CONTENT/usr/lib/. /usr/lib/.
cp -rd perl-modules_5.14.2-20_all/CONTENT/etc/. /etc/.
cp -rd perl-modules_5.14.2-20_all/CONTENT/usr/share/perl/. /usr/share/perl/.

Außerdem wird Make benötigt

cp -rd make_3.81-8.2_mips/CONTENT/usr/bin/. /usr/bin/.
mkdir -p /usr/share/locale/de
cp -rd make/usr/share/locale/de/. /usr/share/locale/de/.

Kompiler installieren

cp -rd cpp-4.6_4.6.3-14_mips/CONTENT/usr/bin/. /usr/bin/.
cp -rd cpp-4.6_4.6.3-14_mips/CONTENT/usr/lib/. /usr/lib/.
cp -rd cpp_4.6.3-8_mips/CONTENT/usr/bin/. /usr/bin/.
ln -s /usr/bin/gcc /usr/bin/cc
cp -rd gcc-4.6-base_4.6.3-14_mips/CONTENT/usr/lib/. /usr/lib/.
cp -rd gcc-4.6_4.6.3-14_mips/CONTENT/usr/bin/. /usr/bin/.
cp -rd gcc-4.6_4.6.3-14_mips/CONTENT/usr/lib/. /usr/lib/.
cp -rd gcc_4.6.3-8_mips/CONTENT/usr/bin/. /usr/bin/.
cp -rd binutils_2.22-8_mips/CONTENT/usr/bin/. /usr/bin/.
cp -rd binutils_2.22-8_mips/CONTENT/usr/lib/. /usr/lib/.
cp -rd binutils_2.22-8_mips/CONTENT/usr/share/locale/de/. /usr/share/locale/de/.
cp -rd libmpc2_0.9-4_mips/CONTENT/usr/lib/. /usr/lib/.
cp -rd libmpfr4_3.1.0-5_mips/CONTENT/usr/lib/. /usr/lib/.
cp -rd libgmp10_5.0.5+dfsg-2_mips/CONTENT/usr/lib/. /usr/lib/.
ln -s /usr/bin/gcc /usr/bin/cc
ln -s /usr/lib/gcc/mips-linux-gnu/4.6/cc1 /usr/bin/cc1

OpenSSL installieren

cp -rd openssl_1.0.1e-2_mips/CONTENT/etc/. /etc/.
cp -rd openssl_1.0.1e-2_mips/CONTENT/usr/bin/. /usr/bin/.
cp -rd openssl_1.0.1e-2_mips/CONTENT/usr/lib/. /usr/lib/.
cp -rd libssl1.0.0_1.0.1e-2_mips/usr/lib/. /usr/lib/.
cp -rd libssl-dev_1.0.1e-2_mips/CONTENT/usr/include/. /usr/include/.
cp -rd libssl-dev_1.0.1e-2_mips/CONTENT/usr/lib/. /usr/lib/.

Grep ersetzen da Cpan bei Installation von manchen Paketen Probleme damit hat

cp -rd grep_2.6.3-3_mips/CONTENT/bin/. /bin/.
cp -rd grep_2.6.3-3_mips/CONTENT/usr/bin/. /usr/bin/.
cp -rd grep_2.6.3-3_mips/CONTENT/usr/share/locale/de/. /usr/share/locale/de/.

Includes kopieren

mkdir /usr/include/linux
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/linux/param.h /usr/include/linux
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/linux/limits.h /usr/include/linux
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/linux/errno.h /usr/include/linux
mkdir /usr/include/asm
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/ioctls.h /usr/include/asm
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/ioctl.h /usr/include/asm
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/socket.h /usr/include/asm
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/param.h /usr/include/asm
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/sockios.h /usr/include/asm
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/arch/mips/include/asm/errno.h /usr/include/asm
mkdir /usr/include/asm-generic
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/ioctl.h /usr/include/asm-generic
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/socket.h /usr/include/asm-generic
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/param.h /usr/include/asm-generic
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/sockios.h /usr/include/asm-generic
cp -rd linux-headers-2.6.32-5-common_2.6.32-48squeeze1_mips/CONTENTS/usr/src/linux-headers-2.6.32-5-common/include/asm-generic/errno-base.h /usr/include/asm-generic


Cpan installieren

Als Ersatz für Cpan wird Cpanminus verwendet. Normales Cpan benötigt zu viel Arbeitsspeicher, die Fritzbox hängt sich auf.

rm /usr/bin/cpan
wget http://search.cpan.org/CPAN/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.6103.tar.gz
tar -xzvf App-cpanminus-1.6103.tar.gz
mkdir -p /usr/local/bin
cp App-cpanminus-1.6103/bin/cpanm /usr/local/bin
chmod 755 /usr/bin/cpanm
ln -s /usr/local/bin/cpanm /usr/bin/cpanm

Der Script muss gepatcht werden da wget von Freetz nicht alle Parameter kennt

patch /usr/local/bin/cpanm < /var/media/ftp/uStor12/temp/cpanm.patch

Jetzt noch noch einmal sauber installieren

cpanm App::cpanminus


Benötigte Perl-Module nachinstallieren

Die folgenden, für normalen Betrieb von FHEM benötigten Module können jetzt nachinstalliert werden

cpanm Net::SSLeay
cpanm IO::Socket::SSL
cpanm --verbose Device::SerialPort
cpanm IO::Uncompress::Gunzip
cpanm HTTP::Request::Common

Module für DbLog:

cpanm DBI
cpanm Class::DBI::SQLite

Weblinks