website annotate pt/doc/scratchbook/base-apps.html @ rev 267

pt: add scratchbook english pages for future translation
author Claudinei Pereira <claudinei@ensinoemrede.com>
date Fri Jan 30 18:32:32 2009 +0000 (2009-01-30)
parents
children c6b2d9c4e031
rev   line source
claudinei@267 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
claudinei@267 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
claudinei@267 3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
claudinei@267 4 <head>
claudinei@267 5 <title>SliTaz Scratchbook - Base Applications</title>
claudinei@267 6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
claudinei@267 7 <meta name="description" content="" />
claudinei@267 8 <meta name="expires" content="never" />
claudinei@267 9 <meta name="modified" content="2008-11-22 17:00:00" />
claudinei@267 10 <meta name="publisher" content="www.slitaz.org" />
claudinei@267 11 <meta name="author" content="Christophe Lincoln"/>
claudinei@267 12 <link rel="shortcut icon" href="favicon.ico" />
claudinei@267 13 <link rel="stylesheet" type="text/css" href="book.css" />
claudinei@267 14 </head>
claudinei@267 15 <body bgcolor="#ffffff">
claudinei@267 16
claudinei@267 17 <!-- Header and quick navigation -->
claudinei@267 18 <div id="header">
claudinei@267 19 <div align="right" id="quicknav">
claudinei@267 20 <a name="top"></a>
claudinei@267 21 <a href="base-system.html">Base system</a> |
claudinei@267 22 <a href="index.html">Table of contents</a> |
claudinei@267 23 <a href="base-ncurses.html">Base ncurses</a>
claudinei@267 24 </div>
claudinei@267 25 <h1><font color="#3E1220">SliTaz Scratchbook</font></h1>
claudinei@267 26 </div>
claudinei@267 27
claudinei@267 28 <!-- Content. -->
claudinei@267 29 <div id="content">
claudinei@267 30 <div class="content-right"></div>
claudinei@267 31
claudinei@267 32
claudinei@267 33 <h2><font color="#df8f06">Base Applications</font></h2>
claudinei@267 34 <p>
claudinei@267 35 Install and configure libraries and basic applications.
claudinei@267 36 </p>
claudinei@267 37 <ul>
claudinei@267 38 <li><a href="#about">About the chapter</a> - Description and environmental variable ($fs)</li>
claudinei@267 39 <li><a href="#bc">bc-1.06</a> - Text mode calculator.</li>
claudinei@267 40 <li><a href="#zlib">zlib-1.2.3</a> - Compression libraries.</li>
claudinei@267 41 <li><a href="#pcre">pcre-7.4</a> - Perl-compatible regular expressions.</li>
claudinei@267 42 <li><a href="#e2fsprogs">e2fsprogs-1.39</a> - Filesystem management utilities.</li>
claudinei@267 43 <li><a href="#dropbear">dropbear-0.50</a> - Lightweight SSH server and client.</li>
claudinei@267 44 <li><a href="#lighttpd">lighttpd-1.4.18</a> - HTTP web server.</li>
claudinei@267 45 <li><a href="#iptables">iptables-1.3.7</a> - Netfilter, Linux firewall.</li>
claudinei@267 46 <li><a href="#sqlite">sqlite-3.5.1</a> - Small SQL database engine.</li>
claudinei@267 47 <li><a href="#cdrkit">cdrkit-1.1.5</a> - Tools for manipulating cdrom
claudinei@267 48 and ISO images.</li>
claudinei@267 49 <li><a href="#cpio">cpio-2.8</a> - Archiver used for SliTaz packages and
claudinei@267 50 initramfs.</li>
claudinei@267 51 <li><a href="#microperl">microperl-5.8.8</a> - A tiny Perl.</li>
claudinei@267 52 <li><a href="#module-init-tools">module-init-tools-3.2</a> - Tools for
claudinei@267 53 manipulating the kernel modules.</li>
claudinei@267 54 <li><a href="#kernel-modules">Copy and compress the Kernel modules.</a></li>
claudinei@267 55 <li><a href="#initramfs-iso">Generate the initramfs and an ISO image.</a></li>
claudinei@267 56 </ul>
claudinei@267 57 <a name="about"></a>
claudinei@267 58 <h3><font color="#6c0023">About</font></h3>
claudinei@267 59 <p>
claudinei@267 60 This chapter describes the facilities libraries and basic text mode applications supplied with
claudinei@267 61 SliTaz.
claudinei@267 62 </p>
claudinei@267 63 <h4>Assign an environment variable ($fs)</h4>
claudinei@267 64 <p>
claudinei@267 65 An environmental variable can't specify the path to the directory, just the name of the directory.
claudinei@267 66 We will affect a variable '$fs' to indicate the path to the root filesystem
claudinei@267 67 (rootfs). To do this, we venture into the working directory SliTaz/, and type:
claudinei@267 68 </p>
claudinei@267 69 <pre> # export fs=$PWD/rootfs
claudinei@267 70 </pre>
claudinei@267 71 <p>
claudinei@267 72 To check:
claudinei@267 73 </p>
claudinei@267 74 <pre> # echo $fs
claudinei@267 75 </pre>
claudinei@267 76 <a name="bc"></a>
claudinei@267 77 <h3><font color="#6c0023">bc-1.06 - Text mode calculator</font></h3>
claudinei@267 78 <p>
claudinei@267 79 The application bc (<a href="http://www.gnu.org/software/bc/">www.gnu.org/software/bc/</a>) provides
claudinei@267 80 a small calculator. When compiling the utility, dc is also built,
claudinei@267 81 but not installed by SliTaz. Note that dc is also available with BusyBox. If you decide to copy dc, you
claudinei@267 82 need to delete the link to BusyBox (if it exists). We use a directory _pkg (package) for installation,
claudinei@267 83 use strip to clean the executables and copy the utilities:
claudinei@267 84 </p>
claudinei@267 85 <pre> # cd src
claudinei@267 86 # wget http://ftp.gnu.org/pub/gnu/bc/bc-1.06.tar.gz
claudinei@267 87 # tar xzfv bc-1.06.tar.gz
claudinei@267 88 # cd bc-1.06
claudinei@267 89 # ./configure --prefix=/usr --infodir=/usr/share/info \
claudinei@267 90 --mandir=/usr/share/man
claudinei@267 91 # make
claudinei@267 92 # make DESTDIR=$PWD/_pkg install
claudinei@267 93 # strip -vs _pkg/usr/bin/*
claudinei@267 94 # cp -avi _pkg/usr/bin/bc $fs/usr/bin
claudinei@267 95 </pre>
claudinei@267 96 <h4>libs</h4>
claudinei@267 97 <p>
claudinei@267 98 A small <code>ldd</code> on bc should produce:
claudinei@267 99 </p>
claudinei@267 100 <pre class="script"> libc.so.6 =&gt; /lib/libc.so.6 (0x40029000)
claudinei@267 101 /lib/ld-linux.so.2 =&gt; /lib/ld-linux.so.2 (0x40000000)
claudinei@267 102 </pre>
claudinei@267 103 <a name="zlib"></a>
claudinei@267 104 <h3><font color="#6c0023">zlib-1.2.3 - Compression libraries</font></h3>
claudinei@267 105 <p>
claudinei@267 106 The zlib (<a href="http://www.zlib.net/">http://www.zlib.net/</a>) package provides compression
claudinei@267 107 and decompression functions used by among others, the SSH server Dropbear and the X server:
claudinei@267 108 </p>
claudinei@267 109 <pre> # cd ..
claudinei@267 110 # wget http://www.gzip.org/zlib/zlib-1.2.3.tar.bz2
claudinei@267 111 # tar xjfv zlib-1.2.3.tar.bz2
claudinei@267 112 # cd zlib-1.2.3
claudinei@267 113 # ./configure --shared --prefix=/usr
claudinei@267 114 # make
claudinei@267 115 # strip -vs libz.so*
claudinei@267 116 # cp -av libz.so* $fs/usr/lib
claudinei@267 117 </pre>
claudinei@267 118 <a name="pcre"></a>
claudinei@267 119 <h3><font color="#6c0023">pcre-7.4 - Perl-compatible regular expressions</font></h3>
claudinei@267 120 <p>
claudinei@267 121 The package pcre (<a href="http://www.pcre.org/">http://www.pcre.org/</a>) provides libraries of
claudinei@267 122 functions for Perl compatible regular expressions used by among others, the web server Lighttpd:
claudinei@267 123 </p>
claudinei@267 124 <pre> # cd ..
claudinei@267 125 # wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.4.tar.gz
claudinei@267 126 # tar xzfv pcre-7.4.tar.gz
claudinei@267 127 # cd pcre-7.4
claudinei@267 128 # ./configure --prefix=/usr
claudinei@267 129 # make
claudinei@267 130 # make DESTDIR=$PWD/_pkg install
claudinei@267 131 # strip -vs _pkg/usr/bin/*
claudinei@267 132 # strip -vs _pkg/usr/lib/*
claudinei@267 133 # cp -av _pkg/usr/bin/* $fs/usr/bin
claudinei@267 134 # cp -av _pkg/usr/lib/*.so* $fs/usr/lib
claudinei@267 135 </pre>
claudinei@267 136 <a name="e2fsprogs"></a>
claudinei@267 137 <h3><font color="#6c0023">e2fsprogs-1.39 - Filesystem management utilities</font></h3>
claudinei@267 138 <p>
claudinei@267 139 The e3fsprogs (<a href="http://e2fsprogs.sourceforge.net/">http://e2fsprogs.sourceforge.net/</a>) provides
claudinei@267 140 utilities for handling ext2 and ext3 filesystems. We will not take all of them because we need the space.
claudinei@267 141 It should be noted that we use fsck of BusyBox:
claudinei@267 142 </p>
claudinei@267 143 <pre> # cd ..
claudinei@267 144 # wget http://puzzle.dl.sourceforge.net/sourceforge/e2fsprogs/e2fsprogs-1.39.tar.gz
claudinei@267 145 # tar xzf e2fsprogs-1.39.tar.gz
claudinei@267 146 # cd e2fsprogs-1.39
claudinei@267 147 # ./configure --prefix=/usr --with-root-prefix="" \
claudinei@267 148 --enable-elf-shlibs --disable-evms --sysconfdir=/etc \
claudinei@267 149 --infodir=/usr/share/info --mandir=/usr/share/man
claudinei@267 150 # make
claudinei@267 151 # make DESTDIR=$PWD/_pkg install
claudinei@267 152 # strip -vs _pkg/sbin/*
claudinei@267 153 # strip -vs _pkg/lib/*
claudinei@267 154 # strip -vs _pkg/usr/bin/*
claudinei@267 155 # strip -vs _pkg/usr/sbin/*
claudinei@267 156 # strip -vs _pkg/usr/lib/*
claudinei@267 157 </pre>
claudinei@267 158 <p>
claudinei@267 159 Install the utilities, configuration files and libraries in the rootfs of SliTaz. Be careful if you
claudinei@267 160 used fsck, that you didn't destroy the link to BusyBox:
claudinei@267 161 </p>
claudinei@267 162 <pre> # cp -i _pkg/sbin/{badblocks,blkid,dumpe2fs,e2fsck,e2image} $fs/sbin
claudinei@267 163 # cp -i _pkg/sbin/{e2label,findfs,logsave,mke2fs,mkfs.*} $fs/sbin
claudinei@267 164 # cp -i _pkg/sbin/{resize2fs,tune2fs} $fs/sbin
claudinei@267 165 # cp -a _pkg/lib/* $fs/lib
claudinei@267 166 # rm -rf $fs/lib/libss*
claudinei@267 167 # cp -a _pkg/etc/* $fs/etc
claudinei@267 168 # cp -a _pkg/usr/bin/* $fs/usr/bin
claudinei@267 169 # cp -a _pkg/usr/sbin/* $fs/usr/sbin
claudinei@267 170 # cp -ad _pkg/usr/lib/*.so $fs/usr/lib
claudinei@267 171 # rm -rf $fs/usr/lib/libss*
claudinei@267 172 </pre>
claudinei@267 173 <p>
claudinei@267 174 You can also copy files from the French locale:
claudinei@267 175 </p>
claudinei@267 176 <pre> # mkdir $fs/usr/share/locale
claudinei@267 177 # cp -a _pkg/usr/share/locale/fr $fs/usr/share/locale
claudinei@267 178 </pre>
claudinei@267 179 <a name="dropbear"></a>
claudinei@267 180 <h3><font color="#6c0023">Dropbear-0.50 - Lightweight SSH client and server</font></h3>
claudinei@267 181 <p>
claudinei@267 182 Dropbear (<a href="http://matt.ucc.asn.au/dropbear/dropbear.html">http://matt.ucc.asn.au/dropbear/dropbear.html</a>)
claudinei@267 183 is a small secure client/server supporting SSH 2. Dropbear is compatible with
claudinei@267 184 OpenSSH and uses ~/.ssh/authorized_keys for the management of public keys. Dropbear also
claudinei@267 185 provides a version of scp, which must be compiled with 'make scp':
claudinei@267 186 </p>
claudinei@267 187 <pre> # cd ..
claudinei@267 188 # wget http://matt.ucc.asn.au/dropbear/releases/dropbear-0.50.tar.gz
claudinei@267 189 # tar xzf dropbear-0.50.tar.gz
claudinei@267 190 # cd dropbear-0.50
claudinei@267 191 # ./configure --prefix=/usr
claudinei@267 192 # make
claudinei@267 193 # make scp
claudinei@267 194 # make DESTDIR=$PWD/_pkg install
claudinei@267 195 # strip -v scp
claudinei@267 196 # strip -v _pkg/usr/bin/*
claudinei@267 197 # strip -v _pkg/usr/sbin/*
claudinei@267 198 </pre>
claudinei@267 199 <p>
claudinei@267 200 Install the client and tools in /usr/bin, and the server in /usr/sbin:
claudinei@267 201 </p>
claudinei@267 202 <pre> # cp scp $fs/usr/bin
claudinei@267 203 # cp -a _pkg/usr/bin/* $fs/usr/bin
claudinei@267 204 # cp -a _pkg/usr/sbin/* $fs/usr/sbin
claudinei@267 205 </pre>
claudinei@267 206 <h4>libs</h4>
claudinei@267 207 <pre class="script"> libutil.so.1 =&gt; /lib/libutil.so.1 (0x40025000)
claudinei@267 208 libz.so.1 =&gt; /usr/lib/libz.so.1 (0x40028000)
claudinei@267 209 libcrypt.so.1 =&gt; /lib/libcrypt.so.1 (0x4003b000)
claudinei@267 210 libc.so.6 =&gt; /lib/libc.so.6 (0x40068000)
claudinei@267 211 /lib/ld-linux.so.2 =&gt; /lib/ld-linux.so.2 (0x40000000)
claudinei@267 212 </pre>
claudinei@267 213 <p>
claudinei@267 214 Copy the library libutil.so.1 to $fs/lib, if this is not already the case. Other libraries
claudinei@267 215 should be present following the construction of the base system:
claudinei@267 216 </p>
claudinei@267 217 <pre> # cp -a /lib/libutil* $fs/lib
claudinei@267 218 </pre>
claudinei@267 219 <h4>Configure Dropbear</h4>
claudinei@267 220 <p>
claudinei@267 221 The user configuration files authorized_keys and known_hosts are in ~/.ssh. This directory and the
claudinei@267 222 file known_hosts are created automatically the first time the user launches dbclient. The system
claudinei@267 223 configuration files for the Dropbear server are in /etc/dropbear:
claudinei@267 224 </p>
claudinei@267 225 <pre> # mkdir $fs/etc/dropbear
claudinei@267 226 </pre>
claudinei@267 227 <p>
claudinei@267 228 You must generate the secure keys before starting the Dropbear server on SliTaz.
claudinei@267 229 You can use dropbearkey with the following commands:
claudinei@267 230 </p>
claudinei@267 231 <pre> # dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
claudinei@267 232 # dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
claudinei@267 233 </pre>
claudinei@267 234 <p>
claudinei@267 235 On SliTaz, you can start the SSH server with the command:
claudinei@267 236 </p>
claudinei@267 237 <pre> # /etc/init.d/dropbear start
claudinei@267 238 </pre>
claudinei@267 239 <a name="lighttpd"></a>
claudinei@267 240 <h3><font color="#6c0023">lighttpd-1.4.18 - HTTP Web server</font></h3>
claudinei@267 241 <p>
claudinei@267 242 Lighttpd (<a href="http://www.lighttpd.net/">www.lighttpd.net</a>) is a light, secure and powerful web server.
claudinei@267 243 The project is very active and the server's configuration simple. It supports virtual hosts, CGI scripts,
claudinei@267 244 and allows intelligent management of the CPU:
claudinei@267 245 </p>
claudinei@267 246 <pre> # cd ..
claudinei@267 247 # wget http://www.lighttpd.net/download/lighttpd-1.4.18.tar.gz
claudinei@267 248 # tar xzf lighttpd-1.4.18.tar.gz
claudinei@267 249 # cd lighttpd-1.4.18
claudinei@267 250 # ./configure -enable-shared --disable-ipv6 --prefix=/usr \
claudinei@267 251 --libdir=/usr/lib/lighttpd --mandir=/usr/share/man
claudinei@267 252 # make
claudinei@267 253 # make DESTDIR=$PWD/_pkg install
claudinei@267 254 # strip -vs _pkg/usr/bin/*
claudinei@267 255 # strip -vs _pkg/usr/sbin/*
claudinei@267 256 # strip -vs _pkg/usr/lib/lighttpd/*
claudinei@267 257 </pre>
claudinei@267 258 <p>
claudinei@267 259 Install the server and generated libraries. We will then copy some of the modules (9):
claudinei@267 260 </p>
claudinei@267 261 <pre> # cp _pkg/usr/bin/* $fs/usr/bin
claudinei@267 262 # cp _pkg/usr/sbin/* $fs/usr/sbin
claudinei@267 263 # mkdir $fs/usr/lib/lighttpd
claudinei@267 264 Modules :
claudinei@267 265 # cp _pkg/usr/lib/lighttpd/mod_access.so $fs/usr/lib/lighttpd
claudinei@267 266 # cp _pkg/usr/lib/lighttpd/mod_accesslog.so $fs/usr/lib/lighttpd
claudinei@267 267 # cp _pkg/usr/lib/lighttpd/mod_alias.so $fs/usr/lib/lighttpd
claudinei@267 268 # cp _pkg/usr/lib/lighttpd/mod_auth.so $fs/usr/lib/lighttpd
claudinei@267 269 # cp _pkg/usr/lib/lighttpd/mod_cgi.so $fs/usr/lib/lighttpd
claudinei@267 270 # cp _pkg/usr/lib/lighttpd/mod_compress.so $fs/usr/lib/lighttpd
claudinei@267 271 # cp _pkg/usr/lib/lighttpd/mod_rewrite.so $fs/usr/lib/lighttpd
claudinei@267 272 # cp _pkg/usr/lib/lighttpd/mod_status.so $fs/usr/lib/lighttpd
claudinei@267 273 # cp _pkg/usr/lib/lighttpd/mod_userdir.so $fs/usr/lib/lighttpd
claudinei@267 274 </pre>
claudinei@267 275 <h4>libs</h4>
claudinei@267 276 <p>
claudinei@267 277 There should be a libdl.so.2 library; if missing, we can copy:
claudinei@267 278 </p>
claudinei@267 279 <pre> # cp -a /lib/libdl* $fs/lib
claudinei@267 280 </pre>
claudinei@267 281 <h4>/var/www - root of documents served</h4>
claudinei@267 282 <p>
claudinei@267 283 /var/www is the root directory of documents served by default. You can access this via the url http://localhost/.
claudinei@267 284 This directory contains an <code>index.html</code> automatically displayed by a query.
claudinei@267 285 We will create the directory /var/www, to see what's placed inside:
claudinei@267 286 </p>
claudinei@267 287 <pre> # mkdir -p $fs/var/www
claudinei@267 288 </pre>
claudinei@267 289 <h4>lighttpd.conf - Lighttpd configuration file</h4>
claudinei@267 290 <p>
claudinei@267 291 The Lighttpd main configuration file is located at /etc/lighttpd and is called lighttpd.conf.
claudinei@267 292 The configuration file SliTaz provides is self-explanatary, just browse. You can find other examples on the
claudinei@267 293 Lighttpd website and as well as an example configuration in /doc in the Lighttpd archive:
claudinei@267 294 </p>
claudinei@267 295 <pre> # cp -a ../slitaz-tools-1.1/etc/lighttpd $fs/etc
claudinei@267 296 </pre>
claudinei@267 297 <p>
claudinei@267 298 Creating the directory containing the log files:
claudinei@267 299 </p>
claudinei@267 300 <pre> # mkdir $fs/var/log/lighttpd
claudinei@267 301 </pre>
claudinei@267 302 <h4>User and group www</h4>
claudinei@267 303 <p>
claudinei@267 304 We will add a user and a group for the web server, it adds security and there is no reason for it to be run a root.
claudinei@267 305 The default user on SliTaz is 'www', but you can change this in the configuration file lighttpd.conf.
claudinei@267 306 The BusyBox application adduser has some limitations, so we add user 'www' manually. We also change permissions on
claudinei@267 307 the directory of web server logs:
claudinei@267 308 </p>
claudinei@267 309 <pre> # echo "www:x:80:80:www:/var/www:/bin/sh" &gt;&gt; $fs/etc/passwd
claudinei@267 310 # echo "www:*:13509:0:99999:7:::" &gt;&gt; $fs/etc/shadow
claudinei@267 311 # echo "www:*:13509:0:99999:7:::" &gt;&gt; $fs/etc/shadow-
claudinei@267 312 # chroot $fs /bin/ash
claudinei@267 313 /# addgroup -g 80 www
claudinei@267 314 /# chown www.www /var/log/lighttpd
claudinei@267 315 # exit
claudinei@267 316 </pre>
claudinei@267 317 <p>
claudinei@267 318 To start the web server, you can use script /etc/init.d/lighttpd provided by SliTaz tools, by typing:
claudinei@267 319 <code>/etc/init.d/lighttpd start</code>. You can also automate its
claudinei@267 320 launch at boot with a link /etc/init.d/lighttpd pointing to /etc/rc.d/60lighttpd.
claudinei@267 321 </p>
claudinei@267 322 <a name="iptables"></a>
claudinei@267 323 <h3><font color="#6c0023">iptables-1.3.7 - Netfilter, Linux firewall</font></h3>
claudinei@267 324 <p>
claudinei@267 325 Netfilter (<a href="http://www.netfilter.org/">www.netfilter.org</a>) is the module which provides the Linux
claudinei@267 326 kernel firewall functions, shared internet connections (NAT) and the archiving of network traffic.
claudinei@267 327 The iptables command allows you to configure Netfilter using iptables-restore
claudinei@267 328 and iptable-save, to save and restore the Netfilter configuration:
claudinei@267 329 </p>
claudinei@267 330 <pre> # cd ..
claudinei@267 331 # wget http://www.netfilter.org/projects/iptables/files/iptables-1.3.7.tar.bz2
claudinei@267 332 # tar xjf iptables-1.3.7.tar.bz2
claudinei@267 333 # cd iptables-1.3.7
claudinei@267 334 # make KERNEL_DIR=../linux-2.6.20 BINDIR=/sbin \
claudinei@267 335 LIBDIR=/lib MANDIR=/usr/share/man
claudinei@267 336 # make KERNEL_DIR=../linux-2.6.20 BINDIR=/sbin \
claudinei@267 337 LIBDIR=/lib MANDIR=/usr/share/man \
claudinei@267 338 DESTDIR=$PWD/_pkg install
claudinei@267 339 # strip _pkg/sbin/*
claudinei@267 340 # strip _pkg/lib/iptables/*
claudinei@267 341 </pre>
claudinei@267 342 <p>
claudinei@267 343 Installing the iptables* applications and libraries sufficient for a basic firewall:
claudinei@267 344 </p>
claudinei@267 345 <pre> # cp -a _pkg/sbin/iptables* $fs/sbin
claudinei@267 346 # mkdir $fs/lib/iptables
claudinei@267 347 # cp -a _pkg/lib/iptables/{libipt_standard.so,libipt_conntrack.so} \
claudinei@267 348 $fs/lib/iptables
claudinei@267 349 # cp -a _pkg/lib/iptables/{libipt_tcp.so,libipt_udp.so} $fs/lib/iptables
claudinei@267 350 </pre>
claudinei@267 351 <p>
claudinei@267 352 To satisfy the iptables dependencies, you must copy the libnsl* library:
claudinei@267 353 </p>
claudinei@267 354 <pre> # cp -va /lib/libnsl* $fs/lib/tls
claudinei@267 355 # strip $fs/lib/libnsl*
claudinei@267 356 </pre>
claudinei@267 357 <a name="sqlite"></a>
claudinei@267 358 <h3><font color="#6c0023">sqlite-3.5.1 - Small SQL database engine</font></h3>
claudinei@267 359 <p>
claudinei@267 360 This package provides sqlite3 (<a href="http://www.sqlite.org/">www.sqlite.org</a>) and sqlite3.so*
claudinei@267 361 libraries. SQLite is fast and efficient and integrates directly to programs using database files:
claudinei@267 362 </p>
claudinei@267 363 <pre> # cd ..
claudinei@267 364 # wget http://www.sqlite.org/sqlite-3.5.1.tar.gz
claudinei@267 365 # tar xzf sqlite-3.5.1.tar.gz
claudinei@267 366 # cd sqlite-3.5.1
claudinei@267 367 # ./configure --prefix=/usr --disable-tcl
claudinei@267 368 # make
claudinei@267 369 # make DESTDIR=$PWD/_pkg install
claudinei@267 370 # strip _pkg/usr/lib/*.so*
claudinei@267 371 # strip _pkg/usr/bin/*
claudinei@267 372 </pre>
claudinei@267 373 <p>
claudinei@267 374 Installing the sqlite3 utility and libraries in the rootfs of SliTaz:
claudinei@267 375 </p>
claudinei@267 376 <pre> # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
claudinei@267 377 # cp -a _pkg/usr/bin/* $fs/usr/bin
claudinei@267 378 </pre>
claudinei@267 379 <a name="cdrkit"></a>
claudinei@267 380 <h3><font color="#6c0023">cdrkit-1.1.5 - Tools for manipulating cdrom and ISO images</font></h3>
claudinei@267 381 <p>
claudinei@267 382 cdrkit (<a href="http://www.cdrkit.org/">www.cdrkit.org</a>) provides tools for manipulating cdroms.
claudinei@267 383 SliTaz installs by default wodim for burning and genisoimage to create an ISO image.
claudinei@267 384 The compilation is a bit different (cmake), but shouldn't pose any problems:
claudinei@267 385 </p>
claudinei@267 386 <pre> # cd ..
claudinei@267 387 # wget http://cdrkit.org/releases/cdrkit-1.1.5.tar.gz
claudinei@267 388 # tar xzf cdrkit-1.1.5.tar.gz
claudinei@267 389 # cd cdrkit-1.1.5
claudinei@267 390 # make
claudinei@267 391 # make install PREFIX=$PWD/_pkg/usr
claudinei@267 392 # strip -v _pkg/usr/bin/*
claudinei@267 393 # strip -v _pkg/usr/sbin/*
claudinei@267 394 # cp _pkg/usr/bin/genisoimage $fs/usr/bin
claudinei@267 395 # cp _pkg/usr/bin/wodim $fs/usr/bin
claudinei@267 396 </pre>
claudinei@267 397 <p>
claudinei@267 398 Copy the library libcap.so.1 required by wodim:
claudinei@267 399 </p>
claudinei@267 400 <pre> # cp -a /lib/libcap.so* $fs/lib
claudinei@267 401 </pre>
claudinei@267 402 <a name="cpio"></a>
claudinei@267 403 <h3><font color="#6c0023">cpio-2.8 - Archiver</font></h3>
claudinei@267 404 <p>
claudinei@267 405 <code>cpio</code> (<a href="http://www.gnu.org/software/cpio/">http://www.gnu.org/software/cpio/</a>) provides tools for
claudinei@267 406 manipulating cpio archives. The archive format is used for packages and the SliTaz initramfs image of the cdrom.
claudinei@267 407 Note that BusyBox provides a version of cpio that only unpacks archives:
claudinei@267 408 </p>
claudinei@267 409 <pre> # cd ..
claudinei@267 410 # wget ftp://sunsite.cnlab-switch.ch/mirror/gnu/cpio/cpio-2.8.tar.gz
claudinei@267 411 # tar xzf cpio-2.8.tar.gz
claudinei@267 412 # cd cpio-2.8
claudinei@267 413 # ./configure --prefix=/usr --bindir=/bin \
claudinei@267 414 --libexecdir=/usr/bin --mandir=/usr/share/man \
claudinei@267 415 --infodir=/usr/share/info
claudinei@267 416 # make
claudinei@267 417 # make DESTDIR=$PWD/_pkg install
claudinei@267 418 # strip -v _pkg/bin/*
claudinei@267 419 # strip -v _pkg/usr/bin/*
claudinei@267 420 </pre>
claudinei@267 421 <p>
claudinei@267 422 Installing <code>cpio</code> in /bin and <code>rmt</code> in /usr/bin. You can also install the French locale files:
claudinei@267 423 </p>
claudinei@267 424 <pre> # cp -a _pkg/bin/* $fs/bin
claudinei@267 425 # cp -a _pkg/usr/bin/* $fs/usr/bin
claudinei@267 426 # cp -a _pkg/usr/share/locale/fr $fs/usr/share/locale
claudinei@267 427 </pre>
claudinei@267 428 <a name="microperl"></a>
claudinei@267 429 <h3><font color="#6c0023">microperl-5.8.8 - A tiny Perl</font></h3>
claudinei@267 430 <p>
claudinei@267 431 Microperl is a tiny implementation of Perl using the most basic functions of the language.
claudinei@267 432 You can find more info in the source archive and the file <code>README.micro</code>.
claudinei@267 433 We use a small <code>sed</code> on the configuration file that searches for microperl modules
claudinei@267 434 in /usr/lib/perl5. We also create a link to the #! /usr/bin/perl script:
claudinei@267 435 </p>
claudinei@267 436 <pre> # wget http://ftp.funet.fi/pub/CPAN/src/perl-5.8.8.tar.gz
claudinei@267 437 # tar xzf perl-5.8.8.tar.gz
claudinei@267 438 # cd perl-5.8.8
claudinei@267 439 # sed -i s/'usr\/local'/'usr'/ uconfig.sh
claudinei@267 440 # sed -i s/'perl5\/5.9'/'perl5'/ uconfig.sh
claudinei@267 441 # sed -i s/'unknown'/'i486-pc-linux-gnu'/ uconfig.sh
claudinei@267 442 # make -f Makefile.micro regen_uconfig
claudinei@267 443 # make -f Makefile.micro
claudinei@267 444 # strip microperl
claudinei@267 445 # cp microperl $fs/usr/bin
claudinei@267 446 # chroot $fs /bin/ash
claudinei@267 447 /# cd /usr/bin
claudinei@267 448 /# ln -s microperl perl
claudinei@267 449 /# exit
claudinei@267 450 </pre>
claudinei@267 451 <a name="module-init-tools"></a>
claudinei@267 452 <h3><font color="#6c0023">module-init-tools-3.2 - Utilities for manipulating kernel modules</font></h3>
claudinei@267 453 <p>
claudinei@267 454 The <a href="http://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools/">module-init-tools</a>
claudinei@267 455 from kernel.org: modprobe, insmod, rmmod and lsmod. We have chosen to use these because we can compile
claudinei@267 456 modutils/modprobe to support compressed (.gz) modules to save space. To do this we use the option
claudinei@267 457 --enable-zlib, we then clean and copy the binaries. We do not take everything that has been created,
claudinei@267 458 only what we need: depmod, insmod, modinfo, modprobe and rmmod in /sbin and lsmod in /bin:
claudinei@267 459 </p>
claudinei@267 460 <pre> # cd ..
claudinei@267 461 # wget http://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2
claudinei@267 462 # tar xjf module-init-tools-3.2.tar.bz2
claudinei@267 463 # cd module-init-tools-3.2
claudinei@267 464 # ./configure --enable-zlib --prefix=/usr --sbindir=/sbin --bindir=/bin \
claudinei@267 465 --sysconfdir=/etc --infodir=/usr/share/info --mandir=/usr/share/man
claudinei@267 466 # make
claudinei@267 467 # make DESTDIR=$PWD/_pkg install
claudinei@267 468 # strip -v _pkg/sbin/{depmod,insmod,modinfo,modprobe,rmmod}
claudinei@267 469 # strip -v _pkg/bin/lsmod
claudinei@267 470 # cp -i _pkg/sbin/{depmod,insmod,modinfo,modprobe,rmmod} $fs/sbin
claudinei@267 471 # cp -i _pkg/bin/lsmod $fs/bin
claudinei@267 472 # cd ..
claudinei@267 473 </pre>
claudinei@267 474 <a name="kernel-modules"></a>
claudinei@267 475 <h3><font color="#6c0023">Copy kernel modules</font></h3>
claudinei@267 476 <p>
claudinei@267 477 Copy files from linux-2.6.20/_pkg:
claudinei@267 478 </p>
claudinei@267 479 <pre> # cp -a linux-2.6.20/_pkg/lib/* $fs/lib
claudinei@267 480 </pre>
claudinei@267 481 <h4>Compress kernel modules</h4>
claudinei@267 482 <p>
claudinei@267 483 Compress modules, this step will gain us back around 50% of available space.
claudinei@267 484 We begin by moving into the rootfs, then we search for all files with the
claudinei@267 485 <code>.ko</code> extension, and compress them. You
claudinei@267 486 can also do this with the 'gzmodtaz.sh' script found in SliTaz tools:
claudinei@267 487 </p>
claudinei@267 488 <pre> # cd $fs
claudinei@267 489 </pre>
claudinei@267 490 <p>
claudinei@267 491 With 'gztazmod.sh':
claudinei@267 492 </p>
claudinei@267 493 <pre> # cp -v ../src/slitaz-tools-1.1/utils/gztazmod.sh sbin
claudinei@267 494 # ./sbin/gztazmod.sh lib/modules/2.6.20-slitaz
claudinei@267 495 </pre>
claudinei@267 496 <p>
claudinei@267 497 Or by hand:
claudinei@267 498 </p>
claudinei@267 499 <pre> # cd lib/modules/2.6.20-slitaz
claudinei@267 500 # find . -name "*.ko" -exec gzip '{}' \;
claudinei@267 501 # sed 's/\.ko/.ko.gz/g' modules.dep &gt; tmp.dep
claudinei@267 502 # rm modules.dep
claudinei@267 503 # mv tmp.dep modules.dep
claudinei@267 504 </pre>
claudinei@267 505 <a name="initramfs-iso"></a>
claudinei@267 506 <h3><font color="#6c0023">Generate the initramfs and an ISO image</font></h3>
claudinei@267 507 <p>
claudinei@267 508 To create a new ISO image, you can use 'mktaziso' in
claudinei@267 509 <a href="http://www.slitaz.org/en/doc/cookbook/slitaz-tools.html">SliTaz tools</a>.
claudinei@267 510 Or you can create a new initramfs image, copy it to /boot in the root of the cdrom
claudinei@267 511 (rootcd) and finally generate an ISO image with genisoimage:
claudinei@267 512 </p>
claudinei@267 513 <pre> # cd $fs
claudinei@267 514 # find . -print | cpio -o -H newc | gzip -9 &gt; ../rootfs.gz
claudinei@267 515 # cd ..
claudinei@267 516 # cp rootfs.gz rootcd/boot
claudinei@267 517 # genisoimage -R -o slitaz-test.iso -b boot/isolinux/isolinux.bin \
claudinei@267 518 -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
claudinei@267 519 -V "SliTaz" -input-charset iso8859-1 -boot-info-table rootcd
claudinei@267 520 </pre>
claudinei@267 521 <p>
claudinei@267 522 Test iso image:
claudinei@267 523 </p>
claudinei@267 524 <pre> # qemu -cdrom slitaz-test.iso
claudinei@267 525 </pre>
claudinei@267 526
claudinei@267 527 <h4>Following chapter</h4>
claudinei@267 528 <p>
claudinei@267 529 The next chapter is called <a href="base-ncurses.html">Base Ncurses</a>. It
claudinei@267 530 covers the installation and configuration of the ncurses libraries and
claudinei@267 531 applications.
claudinei@267 532 </p>
claudinei@267 533
claudinei@267 534 <!-- End of content -->
claudinei@267 535 </div>
claudinei@267 536
claudinei@267 537 <!-- Footer. -->
claudinei@267 538 <div id="footer">
claudinei@267 539 <div class="footer-right"></div>
claudinei@267 540 <a href="#top">Top of the page</a> |
claudinei@267 541 <a href="index.html">Table of contents</a>
claudinei@267 542 </div>
claudinei@267 543
claudinei@267 544 <div id="copy">
claudinei@267 545 Copyright &copy; 2008 <a href="http://www.slitaz.org/en/">SliTaz</a> -
claudinei@267 546 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
claudinei@267 547 Documentation is under
claudinei@267 548 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
claudinei@267 549 and code is <a href="http://validator.w3.org/">valid xHTML 1.0</a>.
claudinei@267 550 </div>
claudinei@267 551
claudinei@267 552 </body>
claudinei@267 553 </html>