Slackware installimise juhend
 
teejuht
 
1. Sissejuhatus
2. PC bootimine
3. Kõvaketaste tahaühendamine
4. Teeme partitsioonid
5. Swap
6. Setup
7. Kui on valmis
 
1. Sissejuhatus
 
 
- Alltulev jutt põhineb eeldusel, et inimesel on kogemusi W95 ja DOS'ga ja ligipääs W95 ja Inetrneti ühendusega arvutile. Ta ise või keegi teine peaks olema kursis kuidas arvutile kettaid külge ühendada. 
- Kui inimesel on kogemusi linux'ga siis ta seda juttu ehk ei loekski või lihtsalt muhedalt silmaks
- Kui inimesel pole ÜLDSE arvutiga kogemusi, siis pole ka linux'i praktiline installeerimine õige koht alustamiseks :( 
Sel juhul minge arvuti kursustele, õppima linuxit
 
  Olgu meil sellised algtingimused:

- arvuti Pentium 120 MHz (kõige tavalisem nn. PC)
- mälu 32 MB
- videokaart ATI 264VT 2 MB (PCI)
- modem US Robotics 33,6 kB/s (ISA, COM2 - modemi pealt määratav, IRQ4)
- võrgukaart Accton EN166x (ISA)
- kõvaketas Quantum Fileball TM 1200 MB (IDE1)
- Logitech 3 nupuga hiir (tavaline) (COM1, IRQ3 - tavaliselt ta on nii)
- 1.44 MB kettaseade
- kaks tühja DOS -i st (FAT12 failisüsteemiga) 1.44 MB ketast

Nüüd on veel see probleem kust saada ja kuidas kasutada installatsioonimaterjali.

Soovitaksein teha nii:

Leidke keegi tuttav (soovitavalt selline inimene, kellel on kogemusi Internetist kopeerimise ning kõvaketaste arvutisse ühendamisiega, või olge ise see tuttav) ja paluge tal kopeerida Internetist

http://www.slackware.org

- Slackware 3.5 distributsioon (see on kataloogistruktuur A1, A2, ... ,Y) ca 120 MB ja veel kaks olulist faili samast kohast
- kataloogist rootdisks (color.gz) ja
- kataloogist bootdisks (bare.i).
- fail rawrite.exe
- INSTALL.TXT või README.TXT (kuigi ma püüan neid vahendada)

(kõige mugavam on muidugi olukord kus teil on kaks arvutit kõrvuti, teie oma ja too Interneti ühendusega masin, et vajadusel mille iganes uuemaid versioone tõmmata)
 
DOS'i (W95) keskkonnas tuleb enne installeerimise juurde minekut teha valmis kaks installeerimiseks vajaikku ketast:
nn. boot ja root ketas.

See toimub DOS'is selliselt:

C:\> rawrite bare.i a: (ja kirjutage vildikaga kettale peale bare.i , boot)
C:\> rawrite color.gz a: (ja kirjutage kettale peale color.gz, root)
 
(olgu öeldud, et linuxi all toimub sama asi selliselt
bash# dd if=bare.i of=/dev/fd0
bash# dd if=color.gz of=/dev/fd0)

2. PC bootimine

Nüüd peaksime saama suvalise PC vaatamata tema kõvaketta olemasolule või selle korrasolekule linux'sse üle boot'ida:

Proovige enda oma:

- pange bare.i ketas sisse ja lülitage arvutile vool sisse
- kui ta küsib teise ketta järele siis ande talle color.gz (NB! esimest korda tuleb lihtsalt reavahetust vajutada)

Siin on üks konks: arvutit saab CMOS-SETUP'ist nii seada, et ta floppy'ilt ennast üldse ei boodigi. Selle muutmine toimub minnes peale arvuti lülitamist voolu alla DEL klahviga CMOS SETUP-i sisse. Ja seal muuta
BIOS FEATURES SETUP -> BOOT SEQUENCE'i : A, C

Kui te nüüd lõpuks saite nii kaugele, et teil on ees login prompt, siis minge sisse root kasutaja alt, esialgu on parooliks tühi string st. vajutaga password'i kohal lihtasalt reavahetust.

Saate ette prompti kuhu käske anda:

#

Tegelikult teil juba praegu töötabki väike linux piiratud käskude ja võimalustega. Lähme siit aga pimesi üle purde edasi ja katsume süsteemi ära installida.

Vot, niisiis asi boodib ja on mõtet teine kõvaketas koos install materjaliga arvutisse sisse panna.

Paneme oma arvuti (sellel kus peaks praegu # prompt ees olema) kinni Ctrl-ALt-Del -iga ning kui ta hakkab taas käivituma ja teeb oma mälu teste lülitame voolu välja.

3. Kõvaketaste tahaühendamine

Nüüd on elektriline koht. Mina ei hakka siin kirjeldama kuidas seda teha, aga te peate saama enda kõvaketta IDE1 Masteriks ja teise ketta nt. IDE1 Slaveks (teine ei pruugi ilmtingimata IDE1 Slave olla aga edasine jutt seda eeldab). Seda on mul väga tarke siin poolpimesi teha. Kui te ei ole varem kõvakettaid ühendanud küsige kelleltki abi või lugege siit saidist "Kõvaketaste PC-sse ühendamise ja partitsioneerimise" jutt läbi. Parem kui te päris pimesi seda ei teeks:

- voolu alla ei tohi ketta juhtmeid (ei toite ei info) liigutada
- alati ühendage kettale taha ja tagant ära mõlemad juhtmed (st. ärge ühendage kettale vaid data juhet külge ja pange voou sisse)
- toite kaabli ja data kaabli punase kiuga pooled jäävad tavaliselt ketta keskele poole
- ketta peal on jumperid, mis määravad kas ta on Slave või Master (MA - master, SL -save, seal on tihti pilt kah ketta peal; ilma junperita on tavaliselt ketas Slave)
- peale ketta ühendamist saab lasta arvutil ketta ära tunda CMOS  SETUP-ist IDE AUTODETECK'iga.
- ja peale ketta tagant ühendamist tuleb lasta arvutil jälle IDE AUTODETECT'ida, muida hakkab õiendama, et ketas on puudu

Loodame, et teil on mõlemad kettad taga (seda peaks nägema ka arvuti ekraanilt peale voolu sisse lülitamist) ja te olete taas arvuti bootinud ülesse bare.i ja color.gz ning teil on # -prompt ees.

veel kontrollime kas linuxi setup ikka näeb mõemaid kettaid (Teil on arvud muidugi teised ja erinevad /dev/hda ja /dev/hdb jaoks). Ettevatlikult!

#fdisk /dev/hda
Command (m for help): p

Disk /dev/hda: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1            1        1       33    66496+  82  Linux swap
/dev/hda2   *       34       34      333   604800   83  Linux native
/dev/hda3          334      334      621   580608    6  DOS 16-bit >=32M

Command (m for help): q
#

#fdisk /dev/hdb

Command (m for help): p

Disk /dev/hdb: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hdb1            1        1       33    66496+  82  Linux swap
/dev/hdb2   *       34       34      333   604800   83  Linux native
/dev/hdb3          334      334      621   580608    6  DOS 16-bit >=32M

Command (m for help): q
#

Kui see on nii, siis on kõik OK

asume lõpuks enda kettale tarkvara kandma!

4. Teeme partitsioonid - fdisk

Kõigepealt teeme ära nö. partitsioonid. Partitsioonid on ketta piirkonnad ja linuxil on vaja kahte:

- swap on nagu mälu pikendus ja
- linux native on tema ise (root)

vajalikud programm fdisk käsud on:

p - print st. vaadata mis seis on
d - delete ja number (/dev/hd? tagant) millise partitsiooni maha võtame)
n - loome uue partitsiooni
t - muudame partitsiooni tüüpi
q - väljume ilma salvestamata
w - väljume salvestades muutused partitsiooni tabelisse
 
Tavaliselt on aga enne nende tegemist vaja olemasolevad partitsioonid ketta pealt maha saada.

#fdisk /dev/hda

Command (m for help): p

Disk /dev/hda: 128 heads, 63 sectors, 782 cylinders
Units = cylinders of 8064 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1          277      277      781  2036160    5  Extended
/dev/hda2           23       23      276  1024128    6  DOS 16-bit >=32M

Command (m for help): d

ja võtame arvude kahanemise järjekorras puhtaks (ainult oma kõvaketta - /dev/hda !)
....
kuni

Command (m for help): p

Disk /dev/hda: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System

Command (m for help):

Kui plats on puhas siis loome kaks partitsiooni (fdisk kogu aeg töötab, ei välju, ei reboodi)

- /dev/hda1 32 MB swap
- /dev/hda2  Linux Native

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-621): 1
Last cylinder or +size or +sizeM or +sizeK ([1]-621): +32M

Command (m for help): p

Disk /dev/hda: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1            1        1       17    34240+  83  Linux native
 

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (18-621): 18
Last cylinder or +size or +sizeM or +sizeK ([18]-621): 621

Command (m for help): p

Disk /dev/hda: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1            1        1       17    34240+  83  Linux native
/dev/hda2           18       18      621  1217664   83  Linux native

Command (m for help):

Muudame esimese partitsiooni swapiks:

Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): l

 0  Empty            a  OS/2 Boot Manag 64  Novell Netware  a5  BSD/386
 1  DOS 12-bit FAT   b  Win95 FAT32     65  Novell Netware  b7  BSDI fs
 2  XENIX root       c  Win95 FAT32 (LB 75  PC/IX           b8  BSDI swap
 3  XENIX usr        e  Win95 FAT16 (LB 80  Old MINIX       c7  Syrinx
 4  DOS 16-bit <32M  f  Win95 Extended  81  Linux/MINIX     db  CP/M
 5  Extended        40  Venix 80286     82  Linux swap      e1  DOS access
 6  DOS 16-bit >=32 51  Novell?         83  Linux native    e3  DOS R/O
 7  OS/2 HPFS       52  Microport       93  Amoeba          f2  DOS secondary
 8  AIX             63  GNU HURD        94  Amoeba BBT      ff  BBT
 9  AIX bootable
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap)

Command (m for help): p

Disk /dev/hda: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1            1        1       17    34240+  82  Linux swap
/dev/hda2           18       18      621  1217664   83  Linux native

Command (m for help): w
 

Ja ongi valmis!

5. Swap

Nüüd tuleb swap muuta aktiivseks (võiks kirja panna swapi partitsiooni blokkide arvu (34240). Teil on arvud teised.

#mkswap /dev/hda1 34240
Setting up swapspace, size = 68087808 bytes

#swapon /dev/hda1
Priority -1
#

Ja swap on aktiviseeritud

6. Setup

Ning lõpuks läheme installimise juurde:
 
 
#setup 

Vastuseks sellele ilmub värviline ekraan:

Slackware Linux Setup (version HD-3.5.0) 

HELP       Read the Slackware Setup HELP file 
KEYMAP     Remap your keyboard 
MAKE TAGS  Tagfile customization program 
TARGET     Select target directory 
SOURCE     Select source media 
SELECT     Select which software sets to install 
INSTALL    Install selected software sets 
CONFIGURE  Reconfigure your Linux system 
PKGTOOL    Install or remove packages with Pkgtool 
EXIT       Exit Slackware Linux Setup 

Esmalt näitame ära kuhu installime: 
 
 
TARGET seal näitame ära /dev/hda2
Näitame ära kust võetakse installikad: SOURCE - > Install from hard drive partition -> /dev/hdb1 -> /sw35 -> OK -> Continue
Ja ees on uus ekraan: 
-> Continue -> 

Siit tehke alguseks näidatud valikud; alati saab juurde installida. Praegu on eesmärk süsttem töle saada.

SOFTWARE SERIES SELECTION 

[X] A    Base Linux system 
[X] AP   Various Applications that do not need X 
[ ] D    Program Development (C, C++, Lisp, Perl, etc.) 
[ ] E    GNU Emacs 
[X] F    FAQ lists, HOWTO documentation 
[ ] K    Linux kernel source 
[X] N    Networking (TCP/IP, UUCP, Mail, News) 
[ ] T    TeX typesetting software 
[ ] TCL  Tcl/Tk script languages 
[ ] X    XFree86 X Window System 
[ ] XAP  X Applications 
[ ] XD   X Server development kit 
[ ] XV   XView (OpenLook Window Manager, apps) 
[ ] Y    Games (that do not require X) 

Ja varsti tuleb vastata küsimustele milliseid programmide komplekte  me A, AP, F, ja N seeriast soovime. Neid küsimusi on setup nõus esitama erineval kujul. Praegu tulebki teha otsus milline see saab olema. 

Ehk on menu kõige parem.

SELECT PROMPTING MODE 

full     Install everything (up to 386 MB of software) 
newbie   Use verbose prompting (and follow tagfiles) 
menu     Choose groups of packages from interactive menus 
expert   Choose individual packages from interactive menus 
custom   Use custom tagfiles in the package directories 
tagpath  Use tagfiles in the subdirectories of a custom path 
help     Read the prompt mode help file

Ja siis tuleb teha järjest valikud A, AP, F, ja N seeriate kohta: SELECTING SOFTWARE FROM SERIES A (BASE LINUX SYSTEM) 

[X] ide       Linux 2.0.34 no SCSI (YOU NEED 1 KERNEL) 
[ ] scsi      Linux 2.0.34 with SCSI (YOU NEED 1 KERNEL) 
[ ] bsdlpr    BSD lpr - printer spooling system 
[ ] loadlin   Boots Linux (UMSDOS too!) from MS-DOS 
[ ] ibcs2     Runs SCO/SysVr4 binaries 
[ ] pcmcia    PCMCIA card services support 
[ ] pnp       Plug'n'Play configuration tool 
[ ] getty     Getty_ps 2.0.7j - OPTIONAL 
[ ] joystick  Joystick support - OPTIONAL 
[X] aoutlibs  a.out shared libraries - RECOMMENDED 
[X] minicom   Serial transfer and modem comm package 
[X] cpio      The GNU cpio backup/archiving utility 
[X] kbd       Change keyboard mappings and console fonts 
[X] gpm       Cut and paste text with your mouse 
[X] zoneinfo  Configures your time zone  

SELECTING SOFTWARE FROM SERIES AP (APPLICATIONS) 

[ ] ispell    The International version of ispell 
[ ] jove      Jonathan's Own Version of Emacs text editor 
[X] manpages  man pages (online docs -- requires groff) 
[X] groff     GNU troff document formatting system 
[X] diff      GNU diffutils 
[X] sudo      Allow special users limited root access 
[ ] ghostscr  GNU Ghostscript version 4.03 
[X] jed       JED programmer's editor 
[X] joe       joe text editor, version 2.8 
[ ] jpeg6     JPEG image compression utilities 
[ ] bc        GNU bc - arbitrary precision math language  
[ ] cdutils   CD-R mastering/burning tools 
[ ] workbone  a text-based audio CD player 
[X] mc        The Midnight Commander file manager 
[ ] md        MD (RAID) utilities 
[ ] mt_st     mt ported from BSD - controls tape drive 
[ ] quota     User disk quota utilities 
[X] sc        The 'sc' spreadsheet 
[X] seejpeg   An SVGAlib image viewer 
[ ] sox       Sound utilities 
[X] texinfo   GNU texinfo documentation system 
[X] vim       Improved vi clone 
[ ] ash       A small /bin/sh type shell - 62K 
[ ] zsh       Zsh - a custom *nix shell  

SELECTING PACKAGES FROM SERIES F (FAQS/DOCS) 

[X] manyfaqs  Lots of Linux documentation 
[X] howto     HOWTOs from the Linux Doc Project 
[X] mini      Linux mini-HOWTOs on a variety of tasks 

SELECTING PACKAGES FROM SERIES N (NETWORK/NEWS/MAIL/UUCP) 

[X] apache    Apache WWW (HTTP) server 
[ ] procmail  Mail delivery/filtering utility 
[ ] dip       Handles SLIP/CSLIP connections 
[X] ppp       Point-to-point protocol 
[ ] mailx     The mailx mailer 
[X] tcpip1    TCP/IP networking programs 
[X] tcpip2    More TCP/IP networking programs 
[ ] samba     SMB print/file server for Win95/NT LANs 
[ ] netatalk  Print/file server for Apple Macs 
[ ] bind      Berkeley Internet Name Domain server 
[ ] rdist     Remote file distribution utility 
[X] lynx      Text-based World Wide Web browser 
[ ] uucp      Taylor UUCP 1.06.1 with HDB && Taylor configs 
[ ] elm       Menu-driven user mail program 
[ ] pine      Pine menu-driven mail program 
[ ] sendmail  The sendmail mail transport agent 
[ ] metamail  Metamail multimedia mail extensions 
[ ] smailcfg  Extra configuration files for sendmail 
[ ] cnews     Spools and transmits Usenet news 
[ ] inn       InterNetNews news transport system 
[ ] tin       The 'tin' news reader 
[ ] trn       A threaded news reader 
[ ] nn_nntp   The 'nn' news reader 
[ ] netpipes  Network pipe utilities

Ja seejärel tahab setup teada kust võtta kernel,  võiks võtta bare.i ketta oma (või skip ja valida nii default kernel) INSTALL LINUX KERNEL 

bootdisk  Use the kernel from the installation bootdisk 
cdrom     Use a kernel from the Slackware CD 
floppy    Install a zimage or bzimage file from a DOS floppy 
skip      Skip this menu and use the default /vmlinuz 
 
 
 

ja pange boot bare.i -ga floppy a: ketta seadmese 
(ärge võtke seal sees olevat root diski enne välje kui arvuti palub teis sisestada bootdisk!
INSERT INSTALLATION BOOTDISK
Süsteemi konfigureerimine CONFIGURE THE SYSTEM 
Make bootdisk -> continue (st ärge laske tal teha midagi)
Modemi konfigureerimine MODEM CONFIGURATION 

Valige vastavalt sellele kus teie modem füüsiliselt on 

/dev/cua0  (COM1: under DOS) 
/dev/cua1  (COM2: under DOS) 
/dev/cua2  (COM3: under DOS) 
/dev/cua3  (COM4: under DOS) 
no modem   I don't have a modem! 

CD-ROM CONFIGURE CD-ROM DRIVE? 
Yes (IDE ATAPI) või No
Ekraani fondid (Terminali mitte X-i jaoks) SCREEN FONT CONFIGURATION 
Yes või No
Lilo install INSTALL LILO 

-> expert 

Begin    Start LILO configuration with a new LILO header  
Linux    Add a Linux partition to the LILO config file 
OS/2     Add an OS/2 partition to the LILO config file  
DOS      Add a DOS partition to the LILO config file 
Install  Install LILO 
Recycle  Reinstall LILO using the existing lilo.conf 
Skip     Skip LILO installation and exit this menu 
View     View your current /etc/lilo.conf  
Help     Read the Linux Loader HELP file  
 

EXPERT LILO INSTALLATION 

See on väga vastutusrikas koht. Kui sin midagi väga ära jamada siis masin ei boodi. 
 

Begin    Start LILO configuration with a new LILO header OPTIONAL append= LINE 

jääb tühjaks (kui näiteks oleks arvutil sees kaks etherneti kaarti siis tuleks siia midagi kirjutada) 

SELECT LILO TARGET LOCATION 

MBR     Use the Master Boot Record 
Root    Use superblock of the root Linux partition 
Floppy  Use a formatted floppy disk in the boot drive 

CHOOSE LILO DELAY 

None     Don't wait at all - boot straight into the first OS 
5        5 seconds 
30       30 seconds 
Forever  Present a prompt and wait until a choice is made

Linux    Add a Linux partition to the LILO config file SELECT LINUX PARTITION 

/dev/hda2 

SELECT PARTITION NAME 
linux

Install  Install LILO 
lilot saate uuesti insallida andes käsu liloconfig
Networgi konfigureerimine CONFIGURE NETWORK?  
(esalgu teeme nii, et võrgukaardile IP aadressi ei anna) 
Selle koha saate hilejam uuesti läbi teha andes käsu netconfig. 

ENTER HOSTNAME 
laura 

ENTER DOMAINNAME 
oolberg.co 

LOOPBACK ONLY? 
Yes 
 
NETWORK SETUP COMPLETE 
 

Hiir MOUSE CONFIGURATION 

bare      2 button Microsoft compatible serial mouse 
ms        3 button Microsoft compatible serial mouse  
mman      Logitech serial MouseMan and similar devices 
ps2       PS/2 port mouse (also most laptops) 
msc       MouseSystems serial (most 3 button mice) 
pnp       Plug and Play (serial mice that do not work with ms) 
ms3       Microsoft serial Intellimouse 
imps2     Microsoft PS/2 Intellimouse 
imps2     Microsoft PS/2 Intellimouse 
logi      Some serial Logitech devices 
logim     Make serial Logitech behave like msc 
atibm     ATI XL busmouse (mouse card) 
inportbm  Microsoft busmouse (mouse card) 
logibm    Logitech busmouse (mouse card) 
ncr       A pointing pen (NCR3125) on some laptops 
wacom     Wacom serial graphics tablet  

SELECT SERIAL PORT 

/dev/ttyS0  (COM1: under DOS) 
/dev/ttyS1  (COM2: under DOS) 
/dev/ttyS2  (COM3: under DOS) 
/dev/ttyS3  (COM4: under DOS) 

GPM CONFIGURATION  

Yes 

Ajatsoon TIMEZONE CONFIGURATION 

Europe /Tallinn 

Kõik, setup valmis EXIT 
nüüd reboot ja asi vask! 
(võtke floppy välja alles hiljem, nt uue  ülestuleku eel)
 
 
Ja kui nüüd tõesti teie masin üles tuli ja saate root alt ilma parooite sisse logida siis on tore. Palju õnne!

7. Kui on valmis

Aga ma soovitaksin paari esimse päeva jooksul teha neli-viis installi. St kohe algusest peale: võtke kõik tagasi puhtaks. Kindlasti oli mõni koht mis tundus kahtlane või mõni valik mis oleks võinud teistmoodi tehtud olla ja jäi kripeldama. Juba fdisk - sellega võiks rohkem tegeleda!

Ja tõepoolest, seni kuni vool ära ei lähe ja fdisk'i juures 'w'-ei pane ei muuda ta vindi peal füüsilisel midagi.

Võimalik et teil ei läinud hiir tööle, või CD-ROM, aga sellepärast proovigegi!
 

Edasi:

- tehke enda masinasse mõned kasutajad adduser'iga
- installeerige peale ka D seeria (valige sealt enamus, mis -  valige kõik sh. perl!)
- proovige: tekstiredaktoreid, shell script'e  perl'i, C'd
- proovige mountida kettaid (kui on võimalust tehke endale selgeks kõvaketaste tahaühendamine)
- õppige lahti ja kokkupakkimine selgeks
- vaadake mis on protsessid
- saage aru failisüsteemist
- vaadake kas telnet ja ftp töötavad
- mõelge kerneli ümberkompileerimisele
- vaadake kas saate võrgukaardi tööle (ega kodus pole tast ühe arvuti puhul suurt kasu aga kes siis nii vilets mees on ?)
- installeerige X -Windows System peale (X, XAP- seeriad; olge veidi ettevaatlik, väga valed settingud võivad raua ära rikkuda)
- Lugege Linux Gazett'i Interneti'st
- subscribe'ge ennast [email protected] või [email protected] kuulajaks.

Teate, lugege minu jutud läbi ja vaadake ise edasi - otsige netist!

NB! Andke sõbrale tema vint tagasi :)