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