slitaz-doc-wiki-data view pages/ru/scratchbook/base-system.txt @ rev 2

Add pages/ru folder.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Feb 26 12:11:48 2011 +0000 (2011-02-26)
parents
children
line source
1 ======Базовый вариант Slitaz======
3 Строим дистрибутив SliTaz, работающий в RAM, на основе Busybox.
6 =====Введение=====
8 Этот документ описывает создание базового варианта SliTaz, а также причины, по которым мы используем ядро Linux, BusyBox и Syslinux для загрузки системы. SliTaz использует архив initramfs, который распаковывается ядром в RAM при загрузке. Мы создадим архив с файлами от 3 до 4 Мб и используем утилиту strip, чтобы уменьшить размер библиотек и исполняемых файлов.
10 Скрипты и конфигурационные файлы были созданы в редакторе GNU nano (Ctrl-X для сохранения и выхода), но, безусловно, вы вправе использовать любой другой текстовый редактор.
12 Данный документ основывается на инструкции, найденной в архиве BusyBox, которая, в свою очередь, базируется на докладе Эрика Андерсона на Конференции по встроенным системам (Embedded Systems Conference) в 2001 г.
15 =====Скачиваем исходники через wget=====
17 Создаем папку //src// для скачивания и компиляции файлов:
19 <code>
20 # mkdir -p src
21 # cd src
22 </code>
24 Скачиваем необходимые файлы:
26 * Ядро Linux 2.6.20 ([[http://www.kernel.org/|www.kernel.org]]). <code># wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2</code>
27 * Busybox 1.2.2 ([[http://www.busybox.net/|www.busybox.net]]). <code># wget http://www.busybox.net/downloads/busybox-1.2.2.tar.bz2</code>
28 * Syslinux 3.35 ([[http://syslinux.zytor.com/|syslinux.zytor.com]]). <code># wget ftp://ftp.kernel.org/pub/linux/boot/syslinux/syslinux-3.35.tar.gz</code>
29 * SliTaz tools 1.1 (распаковываем после скачивания): <code># wget http://download.tuxfamily.org/slitaz/sources/tools/slitaz-tools-1.1.tar.gz
30 # tar xzf slitaz-tools-1.1.tar.gz</code>
33 =====Распаковываем и подготавливаем ядро Linux=====
35 Начнем с компиляции ядра Linux, что займет некоторое время.
38 ===Ядро Linux===
40 Ваше ядро должно поддерживать файловую систему initramfs, иначе CD-ROM не сможет загрузиться. Также вы можете устанавливать модули в отдельную папку, чтобы не затрагивать основную систему. Сконфигурировать исходники ядра можно командой ''make menuconfig'', используя ncurses, или графическими утилитами, выполнив команды ''make gconfig'' или ''make xconfig'' (на основе пакетов разработки GTK и/или QT соответственно). В [[ru:cookbook:slitaz-tools|SliTaz tools]] вы можете найти образцы Makefile для различных ядер серии 2.6.xx.
42 Характерной чертой ядер 2.6 является то, что, если мы запускаем menuconfig, xconfig или config в первый раз, меню настроек будет основываться на конфигурации нашего текущего ядра.
44 Опции настроек зависят от ваших нужд, также вы можете установить module-init-tools для поддержки сжатых модулей или, создавая минимальную систему, выберите только самые необходимые опции.
46 Начнем с изменения исходников — команда ''make mrproper'' упорядочит их, а затем запустим интерфейс конфигурации — gconfig, xconfig, menuconfig или oldconfig:
48 <code>
49 # tar xjf linux-2.6.20.tar.bz2
50 # cd linux-2.6.20
51 # make mrproper
52 # cp ../slitaz-tools-1.1/Makefiles/linux-2.6.20-slitaz.config .config
53 # make oldconfig
54 (# make menuconfig)
55 # make bzImage
56 # make modules
57 # make INSTALL_MOD_PATH=$PWD/_pkg modules_install
58 # cd ..
59 </code>
61 Если вам нужна более подробная информация по компиляции ядра, существует много книг на эту тему. Кстати, вы можете установить ядро, а после перезагрузки компилировать собственное ядро, следуя тем же инструкциям.
64 =====Создаем корневую файловую систему (rootfs)=====
66 Следующим этапом создадим папку с названием //rootfs// (корневая файловая система, Root File System) в нашей рабочей папке //SliTaz///:
68 <code># mkdir ../rootfs</code>
71 ===Устанавливаем BusyBox===
73 BusyBox ([[http://www.busybox.net/|www.busybox.net]]) — это один исполняемый файл, содержащий версии основных утилит, необходимых для использования ядра Linux. Его основное назначение — встраиваться в системы и выполнять почти все задачи. Помимо того, что BusyBox предлагает команды оболочки (coreutils) и систему демонов, он также содержит веб-сервер и клиент-сервер (DHCP, udhcpc).
75 <code># tar -xjf busybox-1.2.2.tar.bz2</code>
77 Cконфигурируем и настроим, запомнив опции dumpkmap, init и др. — подробности вы найдете в файле Makefile в SliTaz BusyBox. Make install создает папку //_install// в текущей папке:
79 <code>
80 # cd busybox-1.2.2
81 # cp ../slitaz-tools-1.1/Makefiles/busybox-1.2.2.config .config
82 # make oldconfig
83 (# make menuconfig)
84 # make
85 # make install
86 # chmod 4755 _install/bin/busybox
87 </code>
89 Скопируем файлы, скомпилированные BusyBox, в папку //_install// корневой файловой системы (rootfs):
91 <code># cp -a _install/* ../../rootfs</code>
93 Ccылка //linuxrc//, указывающая на ///bin/busybox// и папки .bin, /lib и /sbin, была добавлена в папку ///rootfs// — можете в этом убедиться. Может оказаться, что ссылки там не окажется, если вы не отметили в BusyBox опцию "initrd support" (поддержка initrd). Удалим ссылку //linuxrc// и создадим ссылку для //init//, указывающую на ///bin/busybox//:
95 <code>
96 # cd ../../rootfs
97 # ls -CF</code><file>
98 bin/ linuxrc@ sbin/ usr/</file><code>
99 # rm linuxrc
100 # ln -s bin/busybox init
101 </code>
103 ===Выполним команду ldd на BusyBox===
105 Команда //ldd// может вывести список библиотек, которые использует та или иная программа. Библиотеки, используемые BusyBox, могут варьироваться в зависимости от основной системы. Например, в системе Debian — путем копирования библиотек в ///lib/tls//. Следующие команды даны с использованием опции //-v// (verbose) для вывода подробных сообщений. Чтобы удалить отладочную информацию из исполнимых файлов и разделяемых библиотек, мы используем команду //strip//. При этом также можно использовать библиотеки mklibs или uClibc.
107 <code># mkdir lib</code>
109 В SliTaz или другой системе:
111 <code>
112 # cp /lib/{libcrypt.so.1,libm.so.6,libc.so.6} lib
113 # cp /lib/ld-linux.so.2 lib
114 </code>
116 Пример в Debian Etch:
118 <code>
119 # cp /lib/tls/{libcrypt.so.1,libm.so.6,libc.so.6} lib
120 # cp /lib/ld-linux.so.2 lib
121 </code>
123 Очистка библиотек командой //strip//:
125 <code># strip -v lib/*</code>
128 ===Дерево папок Linux и начальная настройка===
130 Создайте несколько папок, представляющих стандартные папки Linux: ///dev// для устройств, ///etc//, ///home//, ///usr//, ///proc//, ///root// и др. Чтобы больше узнать об иерархии файловой системы и ее содержимом, существует Стандарт иерархии файловой системы (File System Hierarchy Standard), доступный в различных форматах по адресу [[http://www.pathname.com/fhs/|www.pathname.com/fhs/]].
132 Вы также можете создать свое дерево папок. В традиционных системах Unix папка ///usr// обычно содержит файлы данного дистрибутива, ///dev// — устройства, ///etc// — файлы конфигурации, ///lib// — библиотеки, ///home// — содержит домашние папки пользователей, а ///var// — различные данные. Обратите внимание, что мы не создаем папок ///lib//, ///bin// и ///sbin// — они будут созданы при установке BusyBox.
134 <code>
135 # mkdir -p dev etc root home proc media mnt sys tmp var
136 # mkdir -p usr/{lib,local,games,share} \
137 var/{cache,lib,lock,log,games,run,spool} \
138 media/{cdrom,flash,usbdisk}
139 </code>
141 Изменим права доступа для папки ///tmp//:
143 <code># chmod 1777 tmp</code>
145 Настроим glibc; здесь важно, что файлы ///etc/ld.so.conf// и ///etc/rpc// не являются необходимыми при построении микросистемы:
147 <code>
148 # touch etc/ld.so.conf
149 # cp /etc/rpc etc
150 </code>
153 ===Создаем устройства в /dev===
155 Эту процедуру можно выполнить через скрипт //mkdevs.sh// из состава BusyBox — или через наш скрипт //mktazdevs.sh// из SliTaz tools. Если вам нужна более подробная информация, ознакомьтесь с этими скриптами. Если вы воспользовались первым скриптом, всё равно потребуется создать папку //pts//:
157 <code>
158 # cp ../src/slitaz-tools-1.1/utils/mktazdevs.sh bin
159 # ./bin/mktazdevs.sh dev
160 </code>
162 или
164 <code>
165 # cp ../src/busybox-1.2.2/examples/bootfloppy/mkdevs.sh bin
166 # ./bin/mkdevs.sh dev
167 # mkdir -p dev/{pts,input,shm,net,usb}
168 </code>
170 Чтобы создавать устройства динамически при загрузке, запускайте //mdev-s// через скрипт //rcS//.
173 ===Поддержка расширений имен хоста (DNS)===
175 Скопируем библиотеки //libnss_*// из основной системы в нашу систему SliTaz. Эти библиотеки используются для расширения имен и их можно очистить при помощи утилиты //strip//:
177 <code>
178 # cp /lib/{libnss_dns.so.2,libnss_files.so.2} lib
179 # cp /lib/libresolv.so.2 lib
180 # strip -v lib/*.so*
181 </code>
184 =====Настраиваем будущую систему=====
186 В этом разделе мы займемся созданием необходимых файлов в папке ///etc//. Для более подробной информации просто прочтите сами эти файлы. Начнем с создания файлов, относящихся к основе системы.
189 ===Сеть===
191 Создадим основные файлы, которые будут использоваться для настройки сети:
193 <code>
194 # echo "127.0.0.1 localhost" > etc/hosts
195 # echo "localnet 127.0.0.1" > etc/networks
196 # echo "slitaz" > etc/hostname
197 # echo "order hosts,bind" > etc/host.conf
198 # echo "multi on" >> etc/host.conf
199 </code>
202 ===/etc/nsswitch.conf===
204 Файлы конфигурации для разграничения имен:
206 <code># nano etc/nsswitch.conf</code>
207 <file>
208 # /etc/nsswitch.conf: GNU Name Service Switch config.
209 #
211 passwd: files
212 group: files
213 shadow: files
215 hosts: files dns
216 networks: files
217 </file>
220 ===/etc/securetty===
222 Выводит список терминалов, которые могут подключаться к root:
224 <code># nano etc/securetty</code>
225 <file>
226 # /etc/securetty: List of terminals on which root is allowed to login.
227 #
228 console
230 # For people with serial port consoles
231 ttyS0
233 # Standard consoles
234 tty1
235 tty2
236 tty3
237 tty4
238 tty5
239 tty6
240 tty7
241 </file>
244 ===/etc/shells===
246 Список работающих оболочек командной строки. Этот файл используется SSH-сервером (Dropbear):
248 <code># nano etc/shells</code>
249 <file>
250 # /etc/shells: valid login shells.
251 /bin/sh
252 /bin/ash
253 /bin/hush
254 </file>
257 ===/etc/issue и /etc/motd===
259 ///etc/issue// отображается на экране в конце загрузки, а после входа в систему выводится сообщение текущего дня (message of the day):
261 <code>
262 # echo "SliTaz GNU/Linux 1.0 Kernel \r \l" > etc/issue
263 # echo "" >> etc/issue
264 # nano etc/motd
265 </code>
266 <file>
267 (°- { Документацию вы найдете в /usr/share/doc.
268 //\ Используйте less или more для чтения файлов,
269 v_/_ su чтобы стать root. }
271 SliTaz распространяется в надежде, что он будет полезен, но
272 БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
273 </file>
276 ===/etc/busybox.conf===
278 Файл конфигурации для BusyBox, в нём можно назначать полномочия приложениям BusyBox. Для более подробной информации прочтите раздел [[ru:handbook:security|Безопасность]] в Настольной книге. Ниже приведен сам файл //busybox.conf//:
280 <code># nano etc/busybox.conf</code>
281 <file>
282 # /etc/busybox.conf: SliTaz GNU/linux Busybox configuration.
283 #
285 [SUID]
286 # Allow command to be run by anyone.
287 su = ssx root.root
288 passwd = ssx root.root
289 loadkmap = ssx root.root
290 mount = ssx root.root
291 reboot = ssx root.root
292 halt = ssx root.root
293 </file>
295 Для дополнительной безопасности измените права доступа этого файла:
297 <code># chmod 600 etc/busybox.conf</code>
300 ===/etc/inittab===
302 Минимальный файл конфигурации для init. Он дает возможность пользоваться root-консолью без необходимости выполнять логин и запускать консоль на tty2.
304 <code># nano etc/inittab</code>
305 <file>
306 # /etc/inittab: init configuration for SliTaz GNU/Linux.
308 ::sysinit:/etc/init.d/rcS
309 ::respawn:-/bin/sh
310 tty2::askfirst:-/bin/sh
311 ::ctrlaltdel:/bin/umount -a -r
312 ::ctrlaltdel:/sbin/reboot
313 </file>
315 Более подробный пример файла //inittab// вы найдете в архиве BusyBox.
318 ===/etc/profile===
320 Этот файл считывается при каждом входе в систему и влияет на всех пользователей. Мы должны использовать конфигурационный файл //./profile// для каждого отдельного пользователя:
322 <code># nano etc/profile</code>
323 <file>
324 # /etc/profile: system-wide .profile file for the Bourne shells
326 PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
327 LD_LIBRARY_PATH="/usr/lib:/lib"
329 if [ "`id -u`" -eq 0 ]; then
330 PS1='\e[1m\u@\h:\w\#\e[m '
331 else
332 PS1='\e[1m\u@\h:\w\$\e[m '
333 fi
335 DISPLAY=:0.0
337 export PATH LD_LIBRARY_PATH PS1 DISPLAY ignoreeof
338 umask 022
339 </file>
342 ===Пользователи, группы и пароли===
344 Создадим конфигурационные файлы для пользователей, групп и паролей в папке ///etc// (//passwd//, //shadow//, //group//, //gshadow//) и установим им необходимые права доступа:
346 <code>
347 # echo "root:x:0:0:root:/root:/bin/sh" > etc/passwd
348 # echo "root::13525:0:99999:7:::" > etc/shadow
349 # echo "root:x:0:" > etc/group
350 # echo "root:*::" > etc/gshadow
351 # chmod 640 etc/shadow
352 # chmod 640 etc/gshadow
353 </code>
355 Также вы можете добавлять других пользователей, например, пользователя hacker для использования в режиме Live CD. Также можно настраивать пароль для root командой //passwd//. Чтобы добавить существующего пользователя в существующуй группу, нужно отредактировать файлы ///etc/group// и ///etc/gshadow//, поскольку апплет //adduser//, предоставляемый BusyBox, не имеет всех опций исходной программы.
358 ===/etc/fstab или /etc/mtab===
360 Список монтируемых файловых систем:
362 <code># nano etc/fstab</code>
363 <file>
364 # /etc/fstab: information about static file system.
365 #
366 proc /proc proc defaults 0 0
367 sysfs /sys sysfs defaults 0 0
368 devpts /dev/pts devpts defaults 0 0
369 tmpfs /dev/shm tmpfs defaults 0 0
370 </file>
372 ///etc/mtab// используется другими mkfs* для создания списка монтируемых разделов. Он опирается на папку ///proc//, т.к. существует ссылка на ///proc/mounts//:
374 <code>
375 # chroot . /bin/ash
376 /# ln -s /proc/mounts /etc/mtab
377 </code>
380 ===Клавиатура===
382 Вы можете создать файл //kmap//, опираясь на специфику вашей клавиатуры, командой //dumpkmap// из BusyBox. Некоторые файлы //kmap// вы также найдете в SliTaz tools. К примеру, создадим файл //kmap// для fr_CH:
384 <code>
385 /# mkdir /usr/share/kmap
386 /# /bin/busybox dumpkmap > /usr/share/kmap/fr_CH.kmap
387 /# exit
388 </code>
390 Выполнив эти команды, вы можете автоматически загружать клавиатуру, включив команду //loadkmap// в скрипт ///etc/init.d/rcS//.
393 ===/usr/share/doc===
395 Также вы можете добавить в систему различные документы, например, руководство пользователя SliTaz, которое можно скачать с сайта в формате tar.gz:
397 <code># mkdir -p usr/share/doc</code>
400 ===Устанавливаем скрипт udhcpc===
402 Udhcpc DHCP-клиент, входящий в состав BusyBox, быстр и стабилен, но его разработка ведется независимо. Сайт проекта: [[http://udhcp.busybox.net/|udhcp.busybox.net]]. Вы можете использовать скрипт по умолчанию из архива BusyBox. Этот скрипт записывается в ///usr/share/udhcpc/default.script//, но это можно изменить через командную строку. В SliTaz данный клиент запускается при загрузке скриптом ///etc/init.d/network.sh// через файл конфигурации ///etc/network.conf//:
404 <code>
405 # mkdir usr/share/udhcpc
406 # cp ../src/busybox-1.2.2/examples/udhcp/simple.script \
407 usr/share/udhcpc/default.script
408 # chmod +x usr/share/udhcpc/default.script
409 </code>
412 ===/etc/init.d/rcS===
414 Наконец, чтобы закончить наброски будущей системы, создадим скрипт инициализации ///etc/init.d/rcS//, который будет монтировать файловые системы и выполнять несколько команд. За подробностями обратитесь к странице [[ru:cookbook:boot-scripts|"Загрузочные скрипты"]]. Вы можете изменить значение переменной //KMAP=// для вашей клавиатуры:
416 <code>
417 # mkdir etc/init.d
418 # nano etc/init.d/rcS
419 </code>
420 <file>
421 #! /bin/sh
422 # /etc/init.d/rcS: rcS initial script.
423 #
425 KMAP=fr_CH
427 echo "Processing /etc/init.d/rcS... "
429 /bin/mount proc
430 /bin/mount -a
431 /bin/hostname -F /etc/hostname
432 /sbin/ifconfig lo 127.0.0.1 up
433 /sbin/loadkmap < /usr/share/kmap/$KMAP.kmap
434 </file>
435 <code># chmod +x etc/init.d/rcS</code>
438 ===На заметку===
440 Также можно установить созданный нами менеджер пакетов Tazpkg (размером 10 Кб), информацию для установки вы найдете в tar-архиве исходников. И еще вы можете установить различные файлы из набора SliTaz tools, например, лицензию.
443 =====Собираем cpio-архив initramfs=====
445 Initramfs представляет собой архив cpio, собираемый из корневой папки системы, который впоследствии будет при загрузке распаковываться в RAM ядром Linux и создавать файловую систему (также в RAM). Чтобы создать такой архив из корневой папки файлов системы (rootfs), осуществим поиск командой find, добавив несколько конвейеров <nowiki>|</nowiki>. Затем мы создадим cpio-архив, используя gzip, и поместим его в рабочую папку.
447 Полученный файл //rootfs.gz// представляет собой корневую папку системы с расширением .gz. Если вы захотите изменить имя этого файла, не забудьте внести изменения в файл конфигурации загрузчика isolinux (//isolinux.cfg//) или в //menu.lst// для GRUB.
449 Вот сама команда:
451 <code># find . -print | cpio -o -H newc | gzip -9 > ../rootfs.gz</code>
453 В конце должен получиться файл //rootfs.gz// размером от 1 до 2 Мб в папке //SliTaz///.
455 При создании нового образа, если вам нужно внести изменения в rootfs, просто скопируйте новый //rootfs.gz// в папку ///rootcd/boot// и соберите образ командой //genisoimage// или //mkisofs//. Или же можно использовать команду //mktaziso// из SliTaz tools. Этот скрипт проверит, существуют ли нужные папки, создаст новый сжатый cpio-архив и новый загрузочный ISO-образ.
458 =====Собираем файлы для rootcd=====
460 Следующие действия помогут вам создать корневую папку загрузочного CD-ROM. Начнем с создания папок //rootcd//, //boot// и //isolinux//:
462 <code>
463 # cd ..
464 # mkdir -p rootcd/boot/isolinux
465 </code>
467 В случае необходимости вы также можете создать и другие папки для различных файлов, например, для документов HTML или пакетов.
470 ===Копируем ядро===
472 Скопируем предварительно скомпилированное ядро в //rootcd/boot//:
474 <code># cp src/linux-2.6.20/arch/i386/boot/bzImage rootcd/boot</code>
477 ===Копируем initramfs в rootcd/boot===
479 Скопируем файл //rootfs.gz// в папку //rootcd/boot//. Не забывайте собирать новый //rootfs.gz//, если вы производите любые изменения в rootfs (корневой файловой системе):
481 <code># cp rootfs.gz rootcd/boot</code>
484 ===Устанавливаем загрузчик isolinux===
486 Для установки isolinux скопируйте файл //isolinux.bin// из архива исходников Syslinux:
488 <code>
489 # cd src
490 # tar xzf syslinux-3.35.tar.gz
491 # cp syslinux-3.35/isolinux.bin ../rootcd/boot/isolinux
492 # cd ..
493 </code>
496 ===isolinux.cfg — файл настроек isolinux===
498 Вот пример //isolinux.cfg//, который, по идее, должен работать. При желании вы можете изменить его:
500 <code># nano rootcd/boot/isolinux/isolinux.cfg</code>
501 <file>
502 display display.txt
503 default slitaz
504 label slitaz
505 kernel /boot/bzImage
506 append initrd=/boot/rootfs.gz rw root=/dev/null vga=788
507 implicit 0
508 prompt 1
509 timeout 80
510 </file>
512 В частности, вы можете внести следующие изменения:
514 * переменная timeout — это отсчет времени в секундах до начала загрузки. Чтобы загрузка начиналась мгновенно, поставьте значение 0 или удалите строку вовсе; иначе можете поставить значение 10.
515 * переменную prompt можно установить в 0, чтобы убрать приглашение //boot://.
516 * можете добавить новые строки, например, для просмотра содержимого определенных текстовых файлов при нажатии F1, F2, F3 и т.д.
519 ===display.txt===
521 Маленькое приветствие, запускаемое isolinux. При желании вы можете внести изменения в этот файл:
523 <code># nano rootcd/boot/isolinux/display.txt</code>
524 <file>
525 /* _\|/_
526 (o o)
527 +----oOO-{_}-OOo---------------------------------------------------+
528 ____ _ _ _____
529 / ___|| (_)_ _|_ _ ____
530 \___ \| | | | |/ _` |_ /
531 ___) | | | | | (_| |/ /
532 |____/|_|_| |_|\__,_/___|
534 SliTaz GNU/Linux - Temporary Autonomous Zone
536 <ENTER> для загрузки.
538 */
539 </file>
541 =====Создаем ISO-образ при помощи genisoimage или mkisofs=====
543 <code>
544 # genisoimage -R -o slitaz-cooking.iso -b boot/isolinux/isolinux.bin \
545 -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
546 -V "SliTaz" -input-charset iso8859-1 -boot-info-table rootcd
547 </code>
549 При каждом изменении содержимого CD-ROM необходимо создавать новый образ.
551 Можно использовать маленький скрипт, который будет создавать новый cpio-архив и новый образ, или //mktaziso// из набора SliTaz tools. Также есть возможность использовать GRUB для загрузки.
554 =====Записываем образ на диск или проверяем в Qemu=====
556 Теперь можно записать образ в Graveman, k3b или wodim и загрузиться с этого диска. Для wodim команда записи проста (также эта команда действительна для cdrecord и ядер серии 2.6.XX):
558 <code># wodim -v -speed=24 -data slitaz-cooking.iso</code>
561 ===Qemu===
563 Образ можно также протестировать в эмуляторе Qemu. Чтобы установить его в системе Debian, наберите //# aptitude install qemu//. для эмуляции ISO-образа SliTaz, используйте команду
565 <code># qemu -cdrom slitaz-cooking.iso</code>
568 ===Следующая глава===
570 В следующей главе — [[base-apps|"Базовые приложения"]] — мы познакомимся с установкой и настройкой основных приложений и библиотек.
572 ----
573 Статью перевел [[http://forum.slitaz.org/index.php/profile/1273/Cyril|Cyril]]