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