linux

Saját Debian mirror

Készítettem saját Ubuntu és Debian mirrort. A koliban még van jó net, de ha hazamegyek otthon kétezerszer lassabb a kapcsolat, és egy kernelforrást is órákig tart leszedni, ha szükség van rá.

A Debian-hoz először is szükséges a debmirror csomag valamint majdnem 11 gigabájt szabad hely. Ebből kilencet elvesz a Sarge mirror, másfelet pedig a biztonsági frissítések.

A debmirror néhány letöltött fájl digitális aláírását is ellenőrzi gnupg-vel. A szükséges publikus kulcsok letöltéséhez kell egy feltelepített gnupg, a $HOME/.gnupg/gpg.conf-ba mondjuk a következő sor:

keyserver  hkp://wwwkeys.eu.pgp.net

Az ellenőrzéshez (jelenleg) szükséges kulcsot a

gpg --recv-keys 2D230C5F

paranccsal kell letölteni. A parancs végén található azonosítót a debmirror is kiírja a kimenetre, csak ki kell keresni belőle. Mindezt a tükrözést végző felhasználó nevében kell megtenni, hogy az ő ismert kulcsai közé kerüljön be a frissen letöltött példány.

Ezután már csak a debmirror-t kell meghívni a megfelelő paraméterekkel. Én a lenti szkriptet használom, bobekét szerkesztettem át, köszönet érte.

#!/bin/bash

# local debian mirror script by palacsint
# based on bobek's script
# 2006. 06.


###
# 2006-os kulcs leszedéséhez:
##
# .gnupg/gpg.conf -ba:
# keyserver  hkp://wwwkeys.eu.pgp.net
#
# futtatni: (a mirrort keszito userrel)
# # gpg --recv-keys 2D230C5F
###


##proxyhoz --proxy=http://10.0.0.1:3128/
DEFOPTS="--progress --verbose --passive --cleanup --method=http \
--arch=i386 --nosource --ignore-missing-release"

RD=/mnt/data3/linux/mirror

LOG=$RD/debian.resyncdate

echo Kezdes: > $LOG; date >> $LOG

debmirror $DEFOPTS --host=ftp.fsn.hu --getcontents --dist=sarge $RD/debian >> $LOG

echo "Az utolso tukor-szikronizacio ekkor fejezodott be:" >> $LOG;
date >> $LOG


LOG=$RD/debian-security.resyncdate

echo Kezdes: > $LOG; date >> $LOG


debmirror $DEFOPTS  --host=security.debian.org --root=debian-security \
--section=main,contrib,non-free --dist=sarge/updates $RD/debian-security >> $LOG


echo "Az utolso tukor-szikronizacio ekkor fejezodott be:" >> $LOG;
date >> $LOG

Végül a /etc/apt/sources.list-be valami ilyesmi került:

deb ftp://localhost/mirror/debian/ sarge main non-free contrib
deb ftp://localhost/mirror/debian-security/ sarge/updates main contrib non-free

Az Ubuntu mirror majd egy következő bejegyzés lesz.

Új NVIDIA driver

Végre kijött a Legacy NVIDIA driver. Az otthoni Ubuntunak már sok gondja volt a másik szériával, ami már nem támogatja a TNT2-es videokártyámat. Ettől függetlenül még mindig tervben van a kártya cseréje, már csak a DVI csatlakozó miatt is.

Schizzors

A legutóbbi Linuxvilág (#63) egyik cikkében volt egy félmondat a Schizzors nevű programról.

A zseniális ötlet alapja az, hogy egy fájlt kettévághatunk úgy, hogy a két részt kizáró vaggyal egyesítve megkapjuk az eredetit. Ezután a két fájlt (amelyek önmagukban csak véletlenszerű adatokat tartalmaznak) szabadon birtokolhatjuk, terjeszthetjük, bármilyen tartalom is legyen az eredetiben, hiszen véletlenszerű biteket tartalmazó fájl birtokolása nem lehet büntetendő dolog.

Azért kíváncsi lennék, hogy tényleg kiállja-e a jog próbáját.

A program eredetileg a Twibright Labs weblapján volt, de ott már nem találtam rá linket, viszont Clock szerzeményei között megtalálható, egészen pontosan a ftp://atrey.karlin.mff.cuni.cz/pub/local/clock/schizzors címen.

Samsung ML-2010 debian alatt

Sok időt megspórolhattam volna, ha ki sem veszem a nemrég vásárolt nyomtatóhoz adott (Samsung ML-2010) cédét a tokjából. Legalábbis linux alatt. A már korábban más nyomtatókkal (Samsung ML-1710, HP DeskJet 5740) működő Debian Sarge-féle CUPS-hoz csak a megfelelő PPD fájlt kellett volna előkeríteni, mondjuk innen:

Samsung-ML-2010.ppd (eredeti forrás)

Ezt bemásolva a /etc/cups/ppd könyvtárba, majd

apt-get -u install foomatic-filters

és CUPS restrart, illetve CUPS konfig után megy is a tesztoldal nyomtatása. Nem kell semmilyen /etc/linuxprint.cfg fájl generálni, stb.

Remélhetőleg nem hagytam ki semmilyen fontos lépést, mert nem kicsit kavartam a beállításokkal. A korábban felmásolt filter könyvtár nélkül is nagyon jól megy, sőt, épp a cédén lévő szűrőfájlokkal nem hajlandó működni a nyomtató. Bár, ha a cédén lévő PPD-t használnám, akkor lehet, hogy ezek lennének a jobbak.

Némi felhasznált irodalom:
To print or not to print - Innen amúgy elég volt a fenti csomagot is felrakni.

update1: a szoftveres toner save a Configure / General / Economy mode alá van eldugva.

Thunderbird frissítés és magyar helyesírás-ellenőrzés

Végre rávettem magam, hogy a Sarge 1.0.2-es Thunderbird-jét frissítsem 1.5-re. Némi belenyúlásra azért szükség volt. A legújabb változat megtalálható a Magyar Mozilla Projekt weblapján, amihez magyar helyesírás-ellenőrzéshez szükséges fájlokat a http://www.szofi.hu/gnu/magyarispell/#download címről lehet letölteni (jelenleg hu_HU0.86.zip).

A frissítés valahogy így nézett ki:

cd
mv .mozilla-thunderbird .thunderbird
su -
cd /opt
wget http://ftp.fsf.hu/Mozilla/thunderbird/releases/1.5/linux-i686/hu/thunderbird-1.5.tar.gz
tar xvzf thunderbird-1.5.tar.gz
cd thunderbird/components/myspell
wget http://www.szofi.hu/gnu/magyarispell/hu_HU0.86.zip
unzip hu_HU0.86.zip
mv hu_HU.aff hu.aff
mv hu_HU.dic hu.dic
rm hu_HU0.86.zip

Előtte mindenképpen érdemes lementeni a ~/.mozilla-thunderbird könyvtárat, fő a biztonság!

linux.hu hírlevél

Nagyon sok éve jár már, de ma lemondtam a linux.hu-s hírlevelet. Kezdett az idegeimre menni, hogy egy hónapja mindegyik küldemény Az LME új irodavezetőt keres című hírrel kezdődik. Szerencsére van helyette RSS.

Rendszeresen elfelejtett rendszeridő

Cserélni kellene az alaplapi elemet a gépemben, mert elég gyakran elfelejti a rendszeridőt. Emiatt aztán szükségtelenül is futtatja az fsck-t bootolás közben. Egyelőre csak egy ilyen workaroundra tellett:

#!/bin/sh
# check-date.sh	Check system date.
#	
#	Check system date and call a sulogin to set it 
#	if it's too old (because the BIOS forget it).
#
# to use (in debian sarge):
#	save it as /etc/init.d/check-date.sh
#	cd /etc/rcS.d
#	ln -s /etc/init.d/check-date.sh S09check-date.sh
#
#	GNU/GPL, author: palacsint, http://www.palacsint.hu/
#	v0.1 - 2005. 12. 24.

echo -n "Check system time..."

PATH=/lib/init:/bin:/sbin

YEAR=`date -d now "+%Y"`
if [ $YEAR -lt 2006 ] 
then
    echo "too old. You should set it."
    /sbin/sulogin -t 30 $CONSOLE
else
    echo "OK"
fi

exit 0

Bootoláskor ellenőrzi a dátumot, ha 2006-nál kevesebb az évszám, akkor hív egy sulogint, ahol kézzel megváltoztatható a dátum, vagy akár rebootolni is lehet. Ilyenkor valószínűleg nem csak a dátumot kell beállítani a cmos-setupban.

linux kernel vs. mplayer

Kezdem megunni ezt a gyakori kernel-cserét, meg azt is, hogy mindig probléma van vele. Most visszaváltottam az alap debianos (2.6.8-as) kernelre. Az újabbakban átírtak valamit az usb környékén, ami miatt nem fordul le a lirc 0.7.2. Próbálkoztam a 0.8.0pre1-el. Ez működik is, de ezzel meg az mplayer nem fordul le. Lehetetlen helyzet.

dhcp változások figyelése

Ha már úgyis a dhcp klienst bütykölöm, akkor megoldottam az e-mailes értesítést is a változásokról. Használhatnám statikus beállításokkal is a hálót, de akkor biztos eltartana egy ideig, amíg rájönnék egy-egy esetleges változásból adódó hiba okára. A következőt találtam ki:

# cat /etc/dhclient-exit-hooks
#!/bin/bash

#set > /tmp/dhclient-defaults
MAILTO=root

if [ $(set | grep "^new_" | wc -l) -lt 2 ]
then
    exit
fi

NUM=$(set | grep -v BASH | grep -v "^old_" | grep -Ff /etc/dhclient-watch | diff -aB  - /etc/dhclient-defaults | grep -v "^>" | wc -l)
if [ $NUM != 0 ]
then
    set | grep -v BASH | grep -v "^old_" |  grep -Ff /etc/dhclient-watch | diff-aB  - /etc/dhclient-defaults | mail $MAILTO -s "dhcp changes"
fi

A szkript a következőt teszi: ha vannak új beállításokat tartalmazó környezeti változók (new_*), akkor azokat megvizsgálja, pontosabban összehasonlítja korábbi értékekkel. Ezek a dhclient-defaults fájlban találhatóak, míg a vizsgálandó változók listája a dhclient-watch fájlba kerül.

# cat /etc/dhclient-watch
interface
nameserver
new_broadcast_address
new_broadcast_arg
new_dhcp_message_type
new_dhcp_server_identifier
new_domain_name
new_domain_name_servers
new_ip_address
new_network_number
new_routers
new_subnet_arg
new_subnet_mask
release
relmajor
relminor

A dhclient-defaults pedig valami ehhez hasonló lehet:

# cat /etc/dhclient-defaults
interface=eth0
nameserver=192.168.1.15
new_broadcast_address=192.168.1.255
new_broadcast_arg='broadcast 192.168.1.255'
new_dhcp_message_type=5
new_dhcp_server_identifier=192.168.1.1
new_domain_name='sch.bme.hu bme.hu'
new_domain_name_servers='192.168.1.1'
new_ip_address=192.168.1.15
new_network_number=192.168.1.0
new_routers=192.168.1.254
new_subnet_arg='netmask 255.255.255.0'
new_subnet_mask=255.255.255.0
release=2
relmajor=6
relminor=13

Ez utóbbi fájl egyszerűen létrehozható, ha egy futtatás erejéig a dhclient-exit-hooks harmadik sora (set > /tmp/dhclient-defaults) elől kitöröljük a #-et (és utána a megfelelő helyre másoljuk, illetve megfelelően módosítjuk).

Elegánsabb megoldások nyugodtan jöhetnek hozzászólásként!

hu.hu és dhcp

Egy ideje feltűnt, hogy a nem létező domainekre mindig a http://hu.hu/ címre ugrik a böngészőm. Aztán rájöttem (thx to kazsaa), a következő miatt:

# cat /etc/resolv.conf 
search sch.bme.hu bme.hu hu
...

Ezek persze a dhcp szervertől jönnek. Ha például a http://nincsilyendomain.palacsint.hu/-t próbálnám elérni, akkor az ugye névfeloldási (dns) hiba. Ezért utánarak még egy .hu-t, valahogy így: http://nincsilyendomain.palacsint.hu.hu/. Ez pedig már a hu.hu egyik aldomainje, ahonnan átugrik a főoldalra. Ügyes trükk.

Ellenszer is van, kampó kell a dhcp kliensszkripthez (2.0-ás dhcp-client csomag esetén), ami nálam a következő:

# cat dhclient-enter-hooks
#!/bin/bash
new_domain_name="sch.bme.hu bme.hu"

Bye-bye hu.hu.

Tartalom átvétel