update for new disk
[KenyonWiki.git] / Debian.mdwn
1 This is my [Debian](http://debian.org/) page.
2
3 Since March 2009, I'm running [Debian squeeze](http://www.debian.org/releases/squeeze/) on my main workstation.
4
5 Since March 2010, I'm running Debian squeeze on my [[Dell Latitude 2100]] netbook.
6
7 [[!toc levels=2]]
8
9 ## 6to4 init script
10 <!-- link here from http://www.linode.com/wiki/index.php/IPv6#Debian.2C_Ubuntu -->
11 Here is a script I wrote for a Debian-style `/etc/init.d` that configures a [[!wikipedia 6to4]] IPv6 tunnel.
12
13 * <http://kenyonralph.com/6to4>
14
15 Dependencies:
16
17 * [[!debpkg iproute]]
18 * [[!debpkg moreutils]]
19 * [[!debpkg perl]]
20 * [[!debpkg curl]]
21
22 ## irssi-notify
23 This script is based on <http://extern.tribut.de/irssi-notify> (linked from <http://thorstenl.blogspot.com/2007/01/thls-irssi-notification-script.html?showComment=1174835100000#c1681311296903415398>). It makes notifications on your desktop when you get messages in irssi. I fixed the link handling, added comments to the sed script, and used portable character classes in the regular expressions. Put `fnotify.pl` in `~/.irssi/scripts/` and do `/script load fnotify`. Now all hilights in irssi will be logged to `~/.irssi/fnotify`.
24
25 [[!format bash """
26 #!/bin/bash
27 # Run this script in the background from the machine you want
28 # notifications to appear on: irssi-notify &
29 # Load the script fnotify.pl in irssi.
30
31 ssh -f irssi-server "tail --lines=10 $HOME/.irssi/fnotify; > $HOME/.irssi/fnotify; tail --follow $HOME/.irssi/fnotify" |
32     sed --regexp-extended --unbuffered "
33         s/(.)&/\1\&amp;/g; # replace characters with HTML entities
34         s/</\&lt;/g;
35         s/>/\&gt;/g;
36         s%(#[[:alpha:]]+ )&lt;([^>]{0,10})&gt;%\1<b>\2</b> %g # bold the channel
37         s%(https?://[^ ]+)%<a href=\"\1\">\1</a>%g; # make clickable links
38         s%([\w+-]+@[^ ]+\.[[:alpha:]]{1,3})%<a href=\"mailto:\1\">\1</a>%g;" |
39     while read heading message
40     do
41         notify-send --hint=int:transient:1 --category=im.received --expire-time 5000 --icon /usr/share/openclipart/png/computer/icons/flat-theme/applications/ksirc.png -- "${heading}" "${message}"
42     done
43 """]]
44
45 Dependencies:
46
47 * [fnotify.pl](http://kenyonralph.com/fnotify.pl)
48 * [[!debpkg libnotify-bin]] for notify-send
49 * [[!debpkg notification-daemon]] or some other notification daemon to display the notifications
50 * [[!debpkg openclipart-png]] for the icon
51
52 ## debconf
53 Make it so all questions are asked: `sudo dpkg-reconfigure debconf` and answer lowest priority.
54
55 ## disable console beep
56 [[!format sh """
57 modprobe -r pcspkr
58 echo blacklist pcspkr >> /etc/modprobe.d/blacklist.conf
59 """]]
60
61 Set 'bell-style' to 'none' in `/etc/inputrc`.
62
63 `setterm -blength 0`
64
65 ### See also
66 * [Removing annoying console beeps](http://www.debian-administration.org/articles/110)
67
68 ## Rebuilding Debian packages
69 This is just my local, condensed version of [Raphaël Hertzog's](http://raphaelhertzog.com/) article [Howto to rebuild Debian packages](http://raphaelhertzog.com/2010/12/15/howto-to-rebuild-debian-packages/).
70
71 1. `apt-get source ntp`
72 1. `sudo apt-get build-dep ntp`
73 1. Make changes to package (or not). If changes were made, use `dch --local foo` to record a changelog entry and increase the version.
74 1. `debuild`
75 1. `dput local whatever.changes` or just install the resulting deb with `gdebi`.
76
77 ## Local Debian package repository
78 Here is how I created a local Debian package repository, also called an archive, using [[!debpkg mini-dinstall]].
79
80 ### ~/.mini-dinstall.conf
81     [DEFAULT]
82     architectures = all, amd64
83     archivedir = ~/repo
84     archive_style = flat
85     generate_release = 1
86     release_signscript = ~/bin/sign-release.sh
87     [squeeze]
88     alias = stable
89
90 Run `mini-dinstall --batch` to initialize the repository.
91
92 ### ~/bin/sign-release.sh
93 [[!format bash """
94 #!/bin/bash
95 # -*- coding: utf-8 -*-
96 # Based on Sample script to GPG sign Release files
97 # Copyright © 2002 Colin Walters <walters@debian.org>
98 # License: GPLv2
99 set -e
100 KEYID=0xc9b912d5
101 rm -f Release.gpg.tmp
102 gpg --default-key "$KEYID" --detach-sign -o Release.gpg.tmp "$1"
103 mv Release.gpg.tmp Release.gpg
104 """]]
105
106 Now `gpg --armor --export 0xc9b912d5 | sudo apt-key add -` to get APT to trust the local repository.
107
108 ### ~/.dput.cf
109     [local]
110     method = local
111     run_dinstall = 0
112     post_upload_command = mini-dinstall --batch
113     incoming = ~/repo/mini-dinstall/incoming
114
115 Run `dput local pkg.changes` to upload the package to the repository.
116
117 ### ~/.devscripts
118 [[!format bash """
119 DEBUILD_DPKG_BUILDPACKAGE_OPTS="-k0xC9B912D5 -sa"
120 DSCVERIFY_KEYRINGS="~/.gnupg/pubring.gpg"
121 """]]
122
123 ### sources.list entries
124     deb file:///home/kenyon/repo squeeze/
125     deb-src file:///home/kenyon/repo squeeze/
126
127 Now after a `sudo aptitude update` you should be able to install packages from the local repository.
128
129 ### References
130 * manual pages and `/usr/share/doc` (read with `debmany` from [[!debpkg debian-goodies]]: sources.list, mini-dinstall, dput
131 * <http://wiki.freegeek.org/index.php/Debian_Package_Repositories>
132 * <http://upsilon.cc/~zack/blog/posts/2009/04/howto:_uploading_to_people.d.o_using_dput/>
133 * <http://wiki.debian.org/HowToSetupADebianRepository>
134
135 ## External links
136 * <http://debian.org/>
137
138 [[!tag Debian Linux]]