Distro Way: Diferență între versiuni
(→Adaugarea/eliminarea unui serviciu în/din autostart) |
(→Gentoo) |
||
Linia 160: | Linia 160: | ||
rc-update add postfix default | rc-update add postfix default | ||
rc-update del postfix | rc-update del postfix | ||
+ | |||
+ | Daemonii care nu au script de service se pot porni/opri la boot/shutdown adaugându-i în "/etc/conf.d/local.start" şi/sau "/etc/conf.d/local.stop". | ||
==== RedHat ==== | ==== RedHat ==== | ||
chkconfig --level 35 postfix on | chkconfig --level 35 postfix on | ||
chkconfig --level 35 postfix off | chkconfig --level 35 postfix off |
Versiunea de la data 6 decembrie 2007 12:42
GNU/Linux este un sistem de operare deosebit de versatil. E un lucru foarte bun, desigur, dar ca orice lucru foarte bun, are şi părţile lui neplăcute. În cazul nostru este vorba de apariţia unei adevarate "babilonii" de distribuţii, care fac aceleaşi lucruri (de exemplu setarea înterfeţei de reţea) în fel şi chip, făcând viaţa adminstratorilor de sisteme un infern. O să încercăm aici să echivalăm (pe cât este posibil) comenzile necesare pentru configurarea diverselor sisteme bazate pe Linux.
Manager-ul de pachete
Sistemul de management
Gentoo
Sistemul de management al pachetelor se numeşte portage. Este inspirat din ports, întâlnită la sismele de operare BSD-like. Deosebirea majoră faţă de alte managere este că aplicaţiile sunt instalate în general din surse şi nu din binare. Acest lucru permite un control riguros al capabilităţilor dorite de la aplicaţiilor instalate, prin folosirea variabilei USE. Un exemplu destul de comun este eliminarea dependelor nedorite faţă de pachete care nu ne sunt necesare. Să luăm cazul postfix (un server SMTP). Acest server are posibilitatea să folosească MySQL pentru tabelele de lookup. Să presupunem că nu ne interesează această capabilitate (sau dimpotrivă, ne interesează). În primul caz vom executa "USE=-mysql emerge postfix", în cel de-al doilea "USE=mysql emerge postfix". Managerul de pachete se va adapta şi ne va genera un postfix care NU are ca dependenţă biblioteca libmysqlclient (în primul caz), fie se va asigura că în sistem există ŞI libmysqlclient. Cum rezolvă un astfel de caz un manager de pachete care foloseşte pachete gata compilate? Ar fi vreo patru cazuri:
- 1) nu ne ofera deloc opţiunea de MySQL (şi atunci trebuie compilat manual)
- 2) ne obligă să avem suport pentru MySQL, chiar dacă nu avem nevoie de el
- 3) sunt furnizate pachete care să acopere toate cazurile posibile (foarte greu de aplicat în cazul în care există multe opţiuni posibile)
- 4) poate avem norocul ca aplicaţia noastră să fie plug-abilă şi atunci managerul de pachete ne va furniza pachete separate cu fiecare plugin în parte (cum este de exemplu PHP)
Repository
O distribuţie vine în general cu o colecţie destul de largă de aplicaţii, care pot fi furnizate pe suport CD (odată cu distribuţia), repository-uri oficiale şi repository-uri de la terţe persoane (aşa numitele 3-rd party). În cele mai multe cazuri repository-urile aflate în Internet sunt disponibile şi pe mirror-uri locale (pentru un acces mai rapid la ele). Majoritatea distribuţiilor permit alegerea explicită a mirror-ului de unde vrem să se descarce pachetele când instalăm vre-un program.
Gentoo
La sistemele Gentoo-based există două tipuri de repository-uri:
- 1) tree-ul portage, care conţine înformaţii generale (metadata) legate de pachete (cum ar fi dependenţe, patch-uri, locul de unde poate fi descărcat codul sursă, etc)
- 2) distfiles (care sunt sursele propriu-zise)
Ambele repository-uri se configurează modificând corespunzător fişierul /etc/make.conf:
SYNC="rsync://rsync.ro.gentoo.org/gentoo-portage" GENTOO_MIRRORS="http://gentoo.mirrors.lug.ro/gentoo"
Sincronizare
Unele distribuţii au nevoie de o actulizare periodică a arborelui cu metadate, pentru reîmprospătarea informaţiilor la aplicaţiile nou întroduse în repository, update-uri, etc.
Gentoo
emerge -v --sync
Căutare
Gentoo
La căutare se poate folosi doar un fragment din numele programului. De exemplu:
emerge -s postfix
va returna:
* mail-mta/postfix Latest version available: 2.4.6-r1 Latest version installed: 2.4.6-r1 Size of files: 2,878 kB Homepage: http://www.postfix.org/ Description: A fast and secure drop-in replacement for sendmail. License: IPL-1 * sec-policy/selinux-postfix Latest version available: 20070928 Latest version installed: [ Not Installed ] Size of files: 415 kB Homepage: http://www.gentoo.org/proj/en/hardened/selinux/ Description: SELinux policy for postfix License: GPL-2 * www-apps/postfixadmin Latest version available: 2.1.0 Latest version installed: [ Not Installed ] Size of files: 156 kB Homepage: http://high5.net/postfixadmin/ Description: Postfix Admin is a Web Based Management tool for Postfix [...] License: MPL-1.1
Instalare
Gentoo
Sintaxa generală este:
emerge NUME_PROGRAM
În cazul în care apare vreo dependenţă nerezolvată, emerge va instala toate pachetele de care are nevoie.
Actualizare
Gentoo
Actualizarea unui pachet în Gentoo se rezumă la reinstalarea acestuia. emerge va instala noul pachet PESTE cel vechi, după care va şterge fişierele din vechiul pachet a căror timestamp corespunde cu ce informaţii despre vechiul pachet are portage în metadate. De exemplu:
emerge postfix
va suprascrie "/usr/sbin/postfix", care din acest moment are un timestamp mai nou decat ce stie vechea versiune despre acesta (şi din acest motiv va considera că nu-i aparţine, prin urmare nu-l va şterge la uninstall).
Dezinstalare
Gentoo
Atenţie, dezinstalarea din Gentoo nu ţine cont de dependenţe. Dacă aveţi un postfix cu suport mysql şi dezinstalaţi mysql sistemul NU VA EMITE NICI UN AVERTISMENT legat de dependenţe. Bineinţeles că postfix va înceta să mai funcţioneze. Sintaxa este:
emerge --unmerge NUME_PROGRAM
Cui aparţine acest fişier?
Întrebare grea, mai ales dacă trebuie să afli această informaţie de la un sistem pe care nu-l cunoşti.
Gentoo
E nevoie de un pachet special, numit gentoolkit. După ce în instalaţi, rulaţi comanda de mai jos:
equery b /usr/sbin/postfix
Configurarea reţelei
Setarea "ad-hoc" a parametrilor
Probabil comună oricarei distribuţii Linux (old way):
ifconfig eth0 192.168.0.1 netmask 255.255.255.0 route add default gw 192.168.0.254 echo "nameserver 80.23.32.1" >> /etc/resolv.conf
Unde:
- - eth0 este numele interfeţei de reţea
- - 192.168.0.1 este IP-ul maşinii pe care o configurăm
- - 192.168.0.254 este default gateway-ul
- - 80.23.32.1 este serverul de nume
Atenţie, exemplele sunt arbitrare.
Configurarea persistentă
Gentoo
Fisierul de configurare pentru reţea este /etc/conf.d/net Sintaxa este următoarea:
config_eth0=( "192.168.0.1 netmask 255.255.255.0" ) routes_eth0=( "default via 192.168.0.254" )
Nameserver-ele se introduc in /etc/resolv.conf
In cazul in care in sistem există o placă de reţea şi nu doriţi să o folosiţi, introduceţi
config_eth1=( "null" )
În caz contrar există riscul să i se aloce un IP prin DHCP.
Exemplu pentru o placă wireless (chipset AETHEROS), cu wpa_supplicant:
modules=( "wpa_supplicant" ) wpa_supplicant_ath0="-Dmadwifi" iwconfig_ath0="mode managed freq 2.412G rate auto rts 250 frag 512 txpower 18" config_ath0=( "192.168.0.1 netmask 255.255.255.0" ) routes_ath0=( "default via 192.168.0.254" )
Crearea unui bridge (util pentru utilizarea cu un virtualbox):
config_eth0=( "null" ) tuntap_tap0="tap" config_tap0=( "null" ) tunctl_tap0="-u serghei" bridge_br0="eth0 tap0" config_br0=( "10.0.2.2/24" ) RC_NEED_br0="net.eth0 net.tap0" brctl_br0=( "setfd 0" "sethello 0" "stp off" ) routes_br0=( "default gw 192.168.0.254" )
In Gentoo interfeţele de reţea sunt "ridicate" ca nişte servicii. De exemplu pentru eth0 trebuie creat un symlink la /etc/init.d/net.eth0, după care trebuie adăugat net.eth0 în lista de servicii pornite la boot.
ln -s net.lo /etc/init.d/net.eth0 rc-update add net.eth0 default
Dacă aţi modificat parametri unei interfeţe de reţea, o reîncărcaţi executând:
/etc/init.d/net.eth0 restart
Scripturile de startup
Pornirea/oprirea manuală a unui serviciu
Gentoo
/etc/init.d/postfix start /etc/init.d/postfix stop
RedHat
service postfix start service postfix stop
Adaugarea/eliminarea unui serviciu în/din autostart
Gentoo
rc-update add postfix default rc-update del postfix
Daemonii care nu au script de service se pot porni/opri la boot/shutdown adaugându-i în "/etc/conf.d/local.start" şi/sau "/etc/conf.d/local.stop".
RedHat
chkconfig --level 35 postfix on chkconfig --level 35 postfix off