Diskussion: Nach dem Server-Crash... im Forum HaBo-Linux, in der Kategorie Linux/UNIX; Der ein oder andere hat ja mitbekommen, dass es auf dem alten Server einen Hardware-Schaden gab. Leider liess sich der ...
![]() |
| | #1 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 371 | Der ein oder andere hat ja mitbekommen, dass es auf dem alten Server einen Hardware-Schaden gab. Leider liess sich der Hoster nicht überreden mir die alten Festplatten zu verkaufen, da für diesen Server kein Backup-Space zur Verfügung stand. Konsequenz daraus ist, dass der Inhalt des SVN und des Wiki sowie die Mailingliste verloren gegangen sind. Da ich aber das Projekt nicht ganz aufgeben will, habe ich angefangen die Versionsverwaltungsinhalte wieder aufzubauen. Die Sources für die Toolchain stehen bereits wieder zur Verfügung. Da aber die Login-Daten für die alte Versionsverwaltung auch weg sind, habe ich die Quelltexte zu Tarballs zusammengepackt und sie unter http://www.habolinux.de/sources/ eingespielt. Es handelt sich dabei um die aktuellsten Versionen, die von den entsprechenden Projekten derzeit zur Verfügung stehen. Das hat zur Folge, dass die Toolchain neu gebaut werden muss. Zukünftig steht ein Backup-Space in einem anderen Rechenzentrum zur Verfügung. Eine Automatisierung des Backups wird nächste Woche eingerichtet. An dieser Stelle meinen Dank an Marinka nach .ru, die den neuen Backup-Space zur Verfügung stellt und bei der Serververwaltung behilflich sein wird, wenn ich Zeitmangel habe. Wer sich also noch am Projekt beteiligen und beim Bau mitmachen will, der kann die folgende Anleitung nutzen um eine Toolchain zu erstellen... Grossteils kann man sich beim Bau an die Anleitung von LinuxFromScratch halten. Da aber teilweise neuere Programmversionen eingesetzt werden, sind einige Abweichungen notwendig. Ausserdem habe ich auf einige der Patches verzichtet. Einerseits, weil neuere Versionen verwendet werden, die diese bereits enthalten, andererseits weil ich sehen will wie sich das System verhält, wenn bestimmte Patches nicht enthalten sind. Sollten sie sich als notwendig erweisen, kann man sie immernoch einbauen. Ich empfehle den Bau in einer virtuelle Maschine wie VirtualBox o.ä. Je mehr RAM man zur Verfügung stellen kann, umso schneller geht der Build. Als virtuelle Festplatte sollten ca. 10GB zur Verfügung stehen. Als Host-System wird eine LFS-LiveCD eingesetzt, die man unter http://www.habolinux.de/lfslivecd-x86-6.3-r2145.iso downloaden kann. Der Build ist damit natürlich auch auf einem "echten" PC möglich. Der Ablauf ist dann im einzelnen wie folgt: Zuerstmal die LFS-Live-CD booten und die root-Konsole durch Druck auf "Enter" aktivieren. Danach die Disk mit 'fdisk' partitionieren: Code: fdisk /dev/hda # ggf. das Device anpassen, wenn keine VirtualBox verwendet wird Code: mkswap /dev/hda1 # ggf. das Device anpassen, wenn anders partitioniert wurde mkfs.ext3 /dev/hda2 # ggf. das Device anpassen, wenn anders partitioniert wurde Code: mkdir /hl mount -t ext3 /dev/hda2 /hl Code: groupadd hl useradd -g hl -s /bin/bash -m -k /dev/null hl passwd hl Code: mkdir /hl/tools /hl/sources chown -R hl:hl /hl ln -s /hl/tools / Code: su - hl Um nicht ständig Umgebungsvariablen ändern zu müssen, werden einige festgelegt. Solange die VM nicht neugestartet wird, bleiben diese auch erhalten. Bei VirtualBox kann man eine VM anhalten und dabei ihren Status speichern, so dass man den Build jederzeit fortsetzen kann, indem man sich einfach wieder als Benutzer 'hl' anmeldet. Code: cat > ~/.bash_profile << "EOF" exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash EOF cat > ~/.bashrc << "EOF" set +h umask 022 HL=/hl LC_ALL=POSIX PATH=/tools/bin:/bin:/usr/bin export HL LC_ALL PATH EOF source ~/.bash_profile Binutils bauen: Code: cd /hl/sources wget http://www.habolinux.de/sources/binutils.tar.gz tar -xzf binutils.tar.gz mkdir binutils-build && cd binutils-build CC="gcc -B/usr/bin/" ../binutils/configure --prefix=/tools --disable-nls --disable-werror make make install make -C ld clean make -C ld LIB_PATH=/tools/lib cp ld/ld-new /tools/bin Code: cd $HL/sources wget http://www.habolinux.de/sources/gcc.tar.gz wget http://www.habolinux.de/sources/gmp.tar.gz wget http://www.habolinux.de/sources/mpfr.tar.gz tar -xzf gcc.tar.gz tar -xzf gmp.tar.gz tar -xzf mpfr.tar.gz mv mpfr gcc mv gmp gcc mkdir gcc-build cd gcc-build CC="gcc -B/usr/bin/" ../gcc/configure --prefix=/tools --with-local-prefix=/tools --disable-nls --disable-shared --disable-libssp --enable-languages=c make make install ln -s libgcc.a `gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/'` ln -vs gcc /tools/bin/cc Code: cd $HL/sources wget http://www.habolinux.de/sources/kernel.tar.gz tar -xzf kernel.tar.gz cd kernel make mrproper make headers_check make INSTALL_HDR_PATH=dest headers_install cp -r dest/include/* /tools/include Code: cd $HL/sources wget http://www.habolinux.de/sources/glibc.tar.gz tar -xzf glibc.tar.gz cd glibc sed -i 's@/etc/ld.so.preload@/tools/etc/ld.so.preload@' elf/rtld.c cd .. mkdir glibc-build cd glibc-build echo "CFLAGS += -march=i486 -mtune=native" > configparms ../glibc/configure --prefix=/tools --disable-profile --enable-add-ons --enable-kernel=2.6.0 --with-binutils=/tools/bin --without-gd --with-headers=/tools/include --without-selinux make mkdir /tools/etc touch /tools/etc/ld.so.conf make install Code: mv /tools/bin/{ld,ld-old}
mv /tools/$(gcc -dumpmachine)/bin/{ld,ld-old}
mv /tools/bin/{ld-new,ld}
ln -s /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld
gcc -dumpspecs | sed 's@/lib/ld-linux.so.2@/tools&@g' > `dirname $(gcc -print-libgcc-file-name)`/specs
GCC_FIXED=`dirname $(gcc -print-libgcc-file-name)`/include-fixed &&
find ${GCC_FIXED}/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \; &&
rm -vf `grep -l "DO NOT EDIT THIS FILE" ${GCC_FIXED}/*` &&
unset GCC_FIXED Code: cd $HL/sources http://www.habolinux.de/sources/tcl.tar.gz tar -xzf tcl.tar.gz cd tcl/unix ./configure --prefix=/tools make TZ=UTC make test make install chmod u+w /tools/lib/libtcl8.5.so make install-private-headers ln -s tclsh8.5 /tools/bin/tclsh Code: cd $HL/sources
wget http://www.habolinux.de/sources/expect.tar.gz
tar -xzf expect.tar.gz
cd expect
patch -Np1 -i patches/expect-5.43.0-spawn-2.patch
patch -Np1 -i patches/expect-5.43.0-tcl_8.5.5_fix-1.patch
cp configure{,.orig}
sed 's:/usr/local/bin:/bin:' configure.orig > configure
./configure --prefix=/tools --with-tcl=/tools/lib --with-tclinclude=/tools/include --with-x=no
make
make test
make SCRIPTS="" install Code: cd $HL/sources wget http://www.habolinux.de/sources/dejagnu.tar.gz tar -xzf dejagnu.tar.gz cd dejagnu ./configure --prefix=/tools make install Code: cd $HL/sources
rm -rf gcc*
wget http://www.habolinux.de/sources/gcc.tar.gz
tar -xzf gcc.tar.gz
cd gcc
cp gcc/Makefile.in{,.orig}
sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.in
cp gcc/Makefile.in{,.tmp}
sed 's/^XCFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in.tmp > gcc/Makefile.in
for file in $(find gcc/config -name linux64.h -o -name linux.h)
do
cp -uv $file{,.orig}
sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' -e 's@/usr@/tools@g' $file.orig > $file
echo "
#undef STANDARD_INCLUDE_DIR
#define STANDARD_INCLUDE_DIR 0" >> $file
touch $file.orig
done
cd ..
tar -xzf gmp.tar.gz
tar -xzf mpfr.tar.gz
mv gmp gcc
mv mpfr gcc
mkdir gcc-build
cd gcc-build
../gcc/configure --prefix=/tools --with-local-prefix=/tools --enable-clocale=gnu --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-languages=c,c++ --disable-libstdcxx-pch --disable-bootstrap
make
make -k check
make install Code: cd $HL/sources rm -rf binutils* wget http://www.habolinux.de/sources/binutils.tar.gz tar -xzf binutils.tar.gz mkdir binutils-build cd binutils-build ../binutils/configure --prefix=/tools --disable-nls --with-lib-path=/tools/lib make make install make -C ld clean make -C ld LIB_PATH=/usr/lib:/lib cp ld/ld-new /tools/bin Code: cd $HL/sources wget http://www.habolinux.de/sources/ncurses.tar.gz tar -xzf ncurses.tar.gz cd ncurses ./configure --prefix=/tools --with-shared --without-debug --without-ada --enable-overwrite make make install Code: cd $HL/sources wget http://www.habolinux.de/sources/bash.tar.gz tar -xzf bash.tar.gz cd bash ./configure --prefix=/tools --without-bash-malloc ac_cv_func_working_mktime=yes make make install ln -s bash /tools/bin/sh Code: cd $HL/sources wget http://www.habolinux.de/sources/bzip2.tar.gz tar -xzf bzip2.tar.gz cd bzip2 make make PREFIX=/tools install Code: cd $HL/sources wget http://www.habolinux.de/sources/gperf.tar.gz tar -xzf gperf.tar.gz cd gperf ./configure --prefix=/tools make make install Code: cd $HL/sources wget http://www.habolinux.de/sources/coreutils.tar.gz tar -xzf coreutils.tar.gz cd coreutils ./configure --prefix=/tools --enable-install-program=hostname make make install cp src/su /tools/bin/su-tools Code: cd $HL/sources wget http://www.habolinux.de/sources/diffutils.tar.gz tar -xzf diffutils.tar.gz cd diffutils ./configure --prefix=/tools make make install Code: cd $HL/sources
wget http://www.habolinux.de/sources/e2fsprogs.tar.gz
tar -xzf e2fsprogs.tar.gz
cd e2fsprogs
mkdir build
cd build
../configure --prefix=/tools
make
make install-libs
chmod u+w /tools/lib/{libblkid,libcom_err,libe2p,libext2fs,libss,libuuid}.a Code: cd $HL/sources wget http://www.habolinux.de/sources/findutils.tar.gz tar -xzf findutils.tar.gz cd findutils ./configure --prefix=/tools make make install Code: cd $HL/sources wget http://www.habolinux.de/sources/gawk.tar.gz tar -xzf gawk.tar.gz cd gawk ./configure --prefix=/tools ac_cv_func_working_mktime=yes make make install Code: cd $HL/sources wget http://www.habolinux.de/sources/gettext.tar.gz tar -xzf gettext.tar.gz cd gettext/gettext-tools ./configure --prefix=/tools --disable-shared make -C gnulib-lib make -C src msgfmt cp src/msgfmt /tools/bin Code: cd $HL/sources wget http://www.habolinux.de/sources/grep.tar.gz tar -xzf grep.tar.gz cd grep ./configure --prefix=/tools --disable-perl-regexp --without-included-regex make make install Code: cd $HL/sources
wget http://www.habolinux.de/sources/gzip.tar.gz
tar -xzf gzip.tar.gz
cd gzip
for file in gzip.c lib/utimens.{c,h} ; do \
cp -v $file{,.orig}
sed 's/futimens/gl_&/' $file.orig > $file
done
./configure --prefix=/tools
make
make install Code: cd $HL/sources wget http://www.habolinux.de/sources/m4.tar.gz tar -xzf m4.tar.gz cd m4 ./configure --prefix=/tools make make install Code: cd $HL/sources wget http://www.habolinux.de/sources/make.tar.gz tar -xzf make.tar.gz cd make ./configure --prefix=/tools make make install Code: cd $HL/sources wget http://www.habolinux.de/sources/patch.tar.gz tar -xzf patch.tar.gz cd patch ./configure --prefix=/tools make make install Code: cd $HL/sources wget http://www.habolinux.de/sources/perl.tar.gz tar -xzf perl.tar.gz cd perl patch -Np1 -i patches/perl-5.10.0-consolidated-1.patch sh Configure -des -Dprefix=/tools -Dstatic_ext='Data/Dumper Fcntl IO POSIX' make perl utilities ext/Errno/pm_to_blib cp -v perl pod/pod2man /tools/bin mkdir -p /tools/lib/perl5/5.10.0 cp -R lib/* /tools/lib/perl5/5.10.0 Code: cd $HL/sources wget http://www.habolinux.de/sources/sed.tar.gz tar -xzf sed.tar.gz cd sed ./configure --prefix=/tools make make install Code: cd $HL/sources wget http://www.habolinux.de/sources.tar.gz tar -xzf tar.tar.gz cd tar ./configure --prefix=/tools make make install Code: cd $HL/sources wget http://www.habolinux.de/sources/help2man.tar.gz tar -xzf help2man.tar.gz cd help2man PATH=/usr/bin:/bin:/tools/bin ./configure --prefix=/tools make make install Code: cd $HL/sources wget http://www.habolinux.de/sources/texinfo.tar.gz tar -xzf texinfo.tar.gz cd texinfo ./configure --prefix=/tools make make install Code: cd $HL/sources
wget http://www.habolinux.de/sources/util-linux-ng.tar.gz
tar -xzf util-linux-ng.tar.gz
cd util-linux-ng
./configure --prefix=/tools --with-fsprobe=builtin
make
cp mount/{,u}mount text-utils/more /tools/bin Code: strip --strip-debug /tools/lib/*
strip --strip-unneeded /tools/{,s}bin/*
rm -rf /tools/{info,man} Code: chown -R root:root /hl/tools Code: mkdir -p /hl/{dev,proc,sys}
mknod -m 600 /hl/dev/console c 5 1
mknod -m 666 /hl/dev/null c 1 3
mount --bind /dev /hl/dev
mount -t devpts devpts /hl/dev/pts
mount -t tmpfs shm /hl/dev/shm
mount -t proc proc /hl/proc
mount -t sysfs sysfs /hl/sys Code: chroot "/hl" /tools/bin/env -i HOME=/root TERM="$TERM" PS1='\u:\w\$ ' PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin /tools/bin/bash --login +h Die für die Toolchain verwendeten Programmversionen sind derzeit im Einzelnen: - bash 3.2.48 - binutils 2.19.1 - bzip2 1.0.5 - coreutils 7.4 - Berkeley DB 4.7.25 - dejagnu 1.4.4 - diffutils 2.8.1 - e2fsprogs 1.41.5 - expect 5.43.0 - findutils 4.4.1 - gawk 3.1.6 - gcc 4.3.3 - gettext 0.17 - glibc 2.9 - gmp 4.3.0 - gperf 3.0.4 - grep 2.5.4 - gzip 1.3.12 - help2man 1.36.4 - kernel 2.6.29 - m4 1.4.13 - make 3.81 - man-pages 3.21 - mpfr 2.4.1 - ncurses 5.7 - patch 2.5.9 - perl 5.10.0 - sed 4.2 - tar 1.22 - tcl 8.5.7 - texinfo 4.13a - util-linux-ng 2.15 Nebenher werde ich noch eine Webserver-optimierte Version bauen. Da dies in der Vergangenheit ja bemängelt wurde, tue ich dies aber zukünftig unabhängig von HaboLinux. Insofern ist meine Zeit für HaboLinux auch weiterhin beschränkt. Sollten sich nach Fertigstellung der Basis-Pakete und des Installer-Skripts nicht ein paar Leute mehr finden, die HaboLinux weiterführen und ausbauen, bin auch ich nicht mehr bereit mich weiterhin dafür zu engagieren.
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
| | #2 (permalink) |
| Hi, da sich vielleicht durch die einfache Anleitung doch ein paar mehr Leute dafür interessieren, wollte ich darauf hinweisen, dass es noch den IRC-Channel #habolinux auf irc.german-freakz.net gibt. Wenn's also was gibt, kann man ja ruhig dort oder in #hackerboard seinen Senf zum Thema geben. mfg, Athelstan | |
| | |
| HaBOT | |
| |
| | #3 (permalink) |
| Registriert seit: 09.07.05 ![]() Likes: 0 | Ich wollte mich eigentlich nicht wirklich beteiligen, allerdings durch meinen derzeitigen Zeitüberschuss ist das Gegenteil eingetreten. Ich weiß, dass ich mich nicht für das habolinux-team gemeldet hatte, aber ich denke ich werde dies hiermit tun. Lange Rede, recht kurzer Sinn: Ich habe die beschriebene Toolchain bei mir in einer virtuellen Machine vorliegen. mfg |
| | |
| | #4 (permalink) | |
| Registriert seit: 26.03.08 ![]() Likes: 0 | Die Toolchain steht bei mir auch ------------------------------------------------------------------------------------------------- Wer mit der alternativen Bash Version baut kann folgendes nutzen: Code: cd $HL/sources wget http://www.habolinux.de/sources/bash-3.2.48.tar.gz tar -xzf bash-3.2.48.tar.gz cd bash-3.2 ./configure --prefix=/tools --without-bash-malloc ac_cv_func_working_mktime=yes make make install ln -s bash /tools/bin/sh Ist nun nicht wirklich ein Bug aber falls einer dran hängen bleibt: Code: cd $HL/sources wget http://www.habolinux.de/sources/tcl.tar.gz tar -xzf tcl.tar.gz cd tcl/unix ./configure --prefix=/tools make TZ=UTC make test make install chmod u+w /tools/lib/libtcl8.5.so make install-private-headers ln -s tclsh8.5 /tools/bin/tclsh Code: cd $HL/sources wget http://www.habolinux.de/sources/tar.tar.gz tar -xzf tar.tar.gz cd tar ./configure --prefix=/tools make make install "Warum werden gcc und binutils zweimal kompiliert" Zitat:
Lass ich erstmal so stehen, so ganz verstanden habe ich es noch nicht, ist aber schonmal einleuchtend. | |
| | |
![]() |
| | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Datei von Server 1 nach Server 2 senden... | junior48000 | (Web-) Design und webbasierte Sprachen | 3 | 16.10.07 18:10 |
| data recovery nach head-crash | ElLute | Hardware Probleme | 0 | 13.07.06 21:03 |
| Probleme nach inst. von SP4 auf WIN 2000 Server | Borstie | Windows | 5 | 01.09.03 10:27 |
| Server nach freigaben durchsuchen | scratchy | Virenschutz · Tools & Aggressive Software | 2 | 05.08.03 12:01 |
| Nach Attacke: Root-Server wird versteckt | Tec | News & Ankündigungen | 0 | 08.11.02 14:26 |