2010-04-30
Apache wieder OK
Während meinem heutigen dist-upgrade-Prozedere wurde Apache aktualisiert. Die Abhängigkeit von libdb1 ist tatsächlich schon kalter Kaffee:
apache (1.3.26-1.1) unstable; urgency=low
* NMU
* The "Shouldn't you be in Whoville stealing Christmas?" release.
* Applied patch from Ryan Murray to use db2's db185-compat functions
instead of glibc's (nonexistant) db1 library.
- Edited patch to include the same hack for mod_urlcount and mod_eaccess
from apache-contrib
- Closes: #143085 #156159 #156390 #156373 #155981
-- Adam Conrad <adconrad@0c3.net> Mon, 12 Aug 2002 21:08:40 -0600
Mein /usr/local/sbin/upgrade-Script sieht übrigens so aus:
#!/bin/sh
# constants
MAILTO=root
LOG=/var/log/aptitude
# mark the start of this upgrade in the log file
TAG="$(hostname | cut -f1 -d.) upgrade of $(date -Im)"
echo -e "\n${TAG}\n" >>$LOG
# grab the new package list
aptitude update
# do the dist-upgrade
aptitude dist-upgrade && aptitude autoclean
# update the local mirror in the background
if [ "$?" -eq 0 -a -d /mirrors -a "$1" != -q ]; then
apt-move local >/var/log/apt-move 2>&1 &
fi
# mail the new part of the log file
sed -ne "/^$TAG/,$p" $LOG | mail -s "$TAG" $MAILTO
Update: Jetzt ist es nur noch die libdav.so, die libdb1 immer noch benötigt!
Neue Liste meiner NTP-Server
time.inf.ethz.ch ntp.metas.ch ntp.univ-lyon1.fr zg1.ntp.carnet.hr
Ändern mit dpkg-reconfigure ntp-simple.
Seinerzeit habe ich die Server anhand tiefer Ping-Zeiten ausgesucht.
swisstime.ethz.ch ist zum Stratum 1-Server avanciert und sollte
nicht mehr direkt von Endusern benützt werden.
15:06 [/software/debian] ntp_servers Google Trackback
Fortsetzung der Kernel-Geschichte
Auch nach mehreren Versuchen mit dem cramfs-Patch habe ich es nicht geschafft, mit einer cramfs-initrd zu booten. Da die Konfiguration des Laptops aber eher statisch ist, habe ich die zum Booten notwendigen Treiber direkt in den Kernel kompiliert (unterdessen übrigens 2.4.20-pre5). Die Module werden jetzt nur noch für die PCMCIA-Unterstützung verwendet, was auch funktioniert.
libc6 gehackt: Apache läuft wieder
Nachdem ich auf die Schnelle nicht herausgefunden habe, wie ich ein Debian-Paket downgraden kann, habe ich die fehlende libdb1 von einer testing-Installation kopiert und die Symlinks generiert. Danach startete auch Apache wieder… Die libc6-Maintainer sind der Auffassung, dass es die Sache der jeweiligen Pakete ist, nicht mehr von libdb1 abhängig zu sein. Das kann bei Apache natürlich noch länger dauern (oder sollte das Ganze ein Versuch sein, einen zu einem Wechsel zu Apache2 zu drängen? ;-)
15:06 [/software/debian] libc6_hack Google Trackback
libc6 breakage
Heute morgen hatte ich einen Fehler von Webalizer in meinem Server-Log:
Die libdb.so.2 war verschwunden! Gestern hatte sich die libc6 auf 2.2.5-13
aktualisiert, und in deren Changelog hatte ich folgendes gelesen:
- Remove db1 compat library. The only user I know of this is coda.
Coda can include it’s own version of the library now. I’ve emailed the
coda maintainer.
Da musste es doch einen Zusammenhang geben; offensichtlich ist Coda nicht
das einzige Paket, das noch auf diese Bibliothek angewiesen ist. Auf Debians
Paketsuchseite gibt es zwar noch
ein Ergebnis für die betroffene Datei, ein Vergleich mit der Dateiliste der
libc6 aus Sarge zeigt jedoch, dass die Datei in Sid jetzt fehlt. Anyway, ich
habe einen Bugreport für libc6 geschrieben.
15:06 [/software/debian] libc6_break Google Trackback
Linux mit cramfs als initrd
Jetzt habe ich endlich herausgefunden, weshalb mein Laptop (ein Toshiba Tecra 500CDT) nicht mit einem selbst kompilierten Kernel 2.4.20-pre4 und einer cramfs-initrd (Ram-Disk im compressed ROM file system Format) bootet. Normalerweise kann das ein Standard-Kernel gar nicht; das Debian-Team hat einen eigenen Patch entwickelt, den sie jedem Kernel hinzufügen.
Falls jemand das gleiche Problem hat; hier ist der Patch:
--- kernel-source-2.4.19-2.4.19.orig/init/do_mounts.c
+++ kernel-source-2.4.19-2.4.19/init/do_mounts.c
@@ -15,6 +15,7 @@
#include <linux/minix_fs.h>
#include <linux/ext2_fs.h>
#include <linux/romfs_fs.h>
+#include <linux/cramfs_fs.h>
#define BUILD_CRAMDISK
@@ -440,6 +441,7 @@
* minix
* ext2
* romfs
+ * cramfs
* gzip
*/
static int __init
@@ -449,6 +451,7 @@
struct minix_super_block *minixsb;
struct ext2_super_block *ext2sb;
struct romfs_super_block *romfsb;
+ struct cramfs_super *cramfsb;
int nblocks = -1;
unsigned char *buf;
@@ -459,6 +462,7 @@
minixsb = (struct minix_super_block *) buf;
ext2sb = (struct ext2_super_block *) buf;
romfsb = (struct romfs_super_block *) buf;
+ cramfsb = (struct cramfs_super *) buf;
memset(buf, 0xe5, size);
/*
@@ -488,6 +492,14 @@
goto done;
}
+ if (cramfsb->magic == CRAMFS_MAGIC) {
+ printk(KERN_NOTICE
+ "RAMDISK: cramfs filesystem found at block %d\n",
+ start_block);
+ nblocks = (cramfsb->size + BLOCK_SIZE - 1) >> BLOCK_SIZE_BITS;
+ goto done;
+ }
+
/*
* Read block 1 to test for minix and ext2 superblock
*/
Das Ganze brauche ich, um die neuesten Wireless Tools mit dem Access-Point-Driver für meine Prism2-WLAN-Karte zu verwenden…
15:06 [/software/debian] debian_initrd_cramfs Google Trackback
2007-08-26
Using the Midnight commander mc(1) in a screen(1) session
Just a quick note for those people whose function keys don’t work when they
use the GNU Midnight commander inside a
screen session: issuing export TERM=xterm
before starting @mc@ helps!
Maybe this problem is related to my SSH client PuTTY, but setting TERM fixes it.
22:36
[/software/debian]
mc_f_keys_in_screen
Google
Trackback
Tags:
screen
midnight commander
mc
2006-01-06
Installing the new apt GPG key
apt since version 0.6 supports verifying the Releases.gz file with a GPG key. The key used for checking expires after one year, so a new one needs to be installed each year. The easiest way to accomplish this is:
wget http://ftp-master.debian.org/ziyi_key_2006.asc -O - | apt-key add -
[via Debian Administration]
09:58
[/software/debian]
debian_apt_key
Google
Trackback
Tags:
debian
apt
apt-key
releases.gz
gpg
key
signing
2004-02-14
Setting up a 6to4 IPv6 tunnel with Debian
This entry in the changelog explains how to set up a 6to4 IPv6 tunnel. The article assumes that your computer has a static IPv4 address, which isn’t true in my case. That’s why I wrote the following script to generate the configuration dynamically:
#!/bin/sh -e
# Set up a 6to4 tunnel
# set -x
set -e
# Set the following to 'n' if you don't need routing
ROUTER=y
# Interface names
INTIF=eth0
EXTIF=eth1
TUNIF=sit1
# Network mask (Yay for 1.844E20 hosts on one IPv4 address!)
MASK=64
# Address mangling
IPv4="$(ifconfig $EXTIF | grep 'inet addr' | cut -d : -f2 | cut -d ' ' -f1)
PREFIX="$(printf '2002:%x%02x:%x%02x' $(echo $IPv4 | tr . ' '))"
EXTIPv6="$PREFIX::2"
INTIPv6="$PREFIX:1::1"
TUNNEL=192.88.99.1
echo "Local external IPv4 address: $IPv4, tunnel at $TUNNEL"
echo "IPv6 prefix: $PREFIX::, IPv6 address: $EXTIPv6/$MASK"
# Enable IPv6
lsmod | grep -q ^ipv6 || modprobe ipv6
# Delete the old tunnel
ifconfig | grep -q "$TUNIF" && ip tunnel del $TUNIF
# Create and activate a sit tunnel to our default endpoint
ip tunnel add $TUNIF mode sit remote $TUNNEL local $IPv4 ttl 64
ip link set $TUNIF up
# Give it an address
ip addr add $EXTIPv6/$MASK dev $TUNIF
# Declare the tunnel to be our IPv6 route to the outside
ip -6 route add 2000::/3 dev $TUNIF
# The rest is for routers only
if [ "$ROUTER" = y ]; then
# Add an IPv6 address for the internal interface
ip -6 addr add $INTIPv6/$MASK dev $INTIF
# Create /etc/radvd.conf
# Get $0's full pathname
arg0=$(which ${0##*/})
echo "# Auto-generated by $arg0 on $(date -Im)
#
# Do not edit, modify $arg0 instead
interface $INTIF
{
AdvSendAdvert on;
# Advertise at least every 45 seconds
MaxRtrAdvInterval 45;
prefix $INTIPv6/$MASK
{
# Very short lifetimes for dynamic addresses
AdvValidLifetime 300;
AdvPreferredLifetime 120;
};
};" >/etc/radvd.conf
# (Re)start radvd
/etc/init.d/radvd restart || /etc/init.d/radvd start
# Configure the kernel's IPv6 behaviour
echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
echo 0 > /proc/sys/net/ipv6/conf/all/accept_ra
echo 0 > /proc/sys/net/ipv6/conf/all/accept_redirects
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
echo 0 > /proc/sys/net/ipv6/conf/all/router_solicitations
else
# Stop radvd
/etc/init.d/radvd stop || true
# Stop forwarding IPv6 packets
echo 0 > /proc/sys/net/ipv6/conf/all/forwarding
fi
# show our addresses and routes
ip -6 addr show
ip -6 route show
15:40 [/software/debian] _6to4 Google Trackback