drop_caches
декември 25th, 2009
Задаването на стойности на /proc/sys/vm/drop_caches кара ядрото да освободи кешовете, dirty страниците и inodes от паметта.
За да освободим кешовете:
echo 1 > /proc/sys/vm/drop_caches
За да освободим dirty страниците и inodes от паметта:
echo 2 > /proc/sys/vm/drop_caches
За да освободим кешовете, dirty страниците и inodes от паметта:
echo 3 > /proc/sys/vm/drop_caches
За да сме сигурни, че всичко ще бъде освободено трябва да изпълним командата “sync” преди да задаваме стойности на /proc/sys/vm/drop_caches. Тази опция е добавена от версия на ядрото 2.6.16.
Possibly Related Posts:
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
- Когато rm се оплаква, че не може да трие
Filed under: Статии | No Comments »
Конфигуриране на ядрото: Поддръжка на мрежови протоколи
октомври 27th, 2009
Менюто с мрежовите настройки съдържа опции за настройване на мрежовите протоколи. Може да включвате или да изключвате поддръжка на цели протоколи, или да настроите финно ядрото за определена роле, като рутер или пакетен филтър.
На много ниско ниво ядрото работи като позволява на дадени приложения да приемат или изпращат порции с данни(пакети), използвайки специални структури данни, познати като сокети. В повечето случаи програмите отварят сокети по подобен начин, на файловете. След това мрежовия протокол се грижи за това информацията да достигне до местоназначението или да бъде интерпретирана от програма след като бъде приета от получателя.
В някой случаи е желателно, или понякога нужно, да опбработваме мрежовата информация по друг начин, като да модифицираме стандартния пакет, или да променим или разширим стандартните пакетни операции. Някои от тези опции са толкова важни, че си имат собствени секции. Някой опции включват следното:
• Packet Socket— Тази опция позволява на програмите да пропускат нормалното обратване на информацията. Повечето програми не се нуждаят от това, но някои инструменти за мрежова диагностика имат нужда от достъп до тази информация. Например tcpdump, който показва информация от ниско ниво за TCP/IP протокола, използва тези опции в ядрото. Включването на тези опции без да има нужда ще уголеми ядрото малко и може да позволи на натрапник да използва инстументи за анализ на протоколи, като tcpdump, които бихте искали да не могат да се ползват от натрапници. Пропускането на тази опция, също ще ви попречи да използвате тези инструменти.
• Packet Socket: Mmapped IO— Това е подопция на сокетите, която, ако е активирана, може да повиши производителността на инструментите, котио използват връзки със сокети.
• Unix Domain Sockets— Няколко важни програми в Линукс ползват мрежови протоколи, за да комуникират помежду си когато работят на един и същи компютър. Примери са syslogd (който се грижи за логовете) и X (X програмите използват мрежови протоколи, за да комуникират с X сървъра, който показва техните прозорци). Тези сокети позволяват мрежовата комунуикация дори ма компютри, на които липсва мрежов хардуер. Би трябвало да включите тази опция на всички стандартми Линукс машини. Само някои тясно специализирани устройства може да нямат нужда от тази опция.
Тези всички опции имат настойки по подразбиране, които са достатъчно уместни за повечето случаи.

Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
- Когато rm се оплаква, че не може да трие
Filed under: Статии, Ядро | No Comments »
Конфигуриране на ядрото
октомври 24th, 2009
За да конфигурирате ядрото, трябва да притежавате сорс кода. В Slackware той може да се инсталира заедно с ядрото. Може би бихте искали да започнете със страндартно ядро и да си го пачнете и конфигурирате по ваше желание. Проверете http://www.kernel.org/ за последна верися на сорс кода на ядрото.
Сорс кода на ядрото обикновено се намира в /usr/src/linux, или в поддиректория на /usr/src името, на която включва версията на ядрото – /usr/src/linux-2.6.17. В този случай е добре да се прави връзка от с името /usr/src/linux, която да сочи до истинското място на сорс кода на ядрото. Това помага на другите програми да намерят кода в /usr/src/linux и да работят правилно и ви дава възможност да имате няколко версии на ядрото и само да сменяте на къде сочи линка.
След като разархивирате сорс кода на ядрото в /usr/src/linux, трябва да влезете в тази директория. След това трябва да изпълните команда за конфигуриране на ядрото. Има няколко възможности:
- make config — Това е базовия инструмент за конфигурация. Той пита за всяка опция на ядрото поред, което може да е досадно. Ако направите грешка, обикновено трябва да се върнете от начало и да повторите всичко. По тези причини се използва много рядко.
- make menuconfig— Тази процедура за конфигурация използва текстови менюта, което ви позволява да преглеждате опциите и да променяте само това, което има нужда. Този е често използван метод за конфигурация в текстов режим.
- make xconfig— Този метод е подобен на make menuconfig, в единствената разлика, че използва GUI конфигурационни менюта. Може да кликате на зададени опции и след това да определяте дали и как да бъдат компилирани. Това е сравнително популярно средство за конфигуриране на ядрото, когато има възможност да се използва X графичната среда.
Всички тези методи предоставят начин за конфигуриране на едни и същи опции, организирани в категории(като някой категории имат подкатегории).

Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
- Когато rm се оплаква, че не може да трие
Filed under: Статии, Ядро | No Comments »
Ограничаване на достъпа до команда в Линукс
октомври 15th, 2009
Как да огранича достъпа до /usr/local/bin/start само за определени потребители на системата ? Отговорът на върпроса е, че трбва да използвате стандартните Линукс групи.
Стъпка 1: Създайте група за всички оторизирани потребители
Създайте групата:
#groupadd restrictedapp
Добавете потребители в тази група:
#usermod -aG {име_на_група} {потребителско_име}
#usermod -aG restrictedapp ivan
#usermod -aG restrictedapp petar
Където:
-a Добавя потребителя към групата
-G Списък с групи, към които да се добави потребителя
Стъпка 2: Ограничете достъпа
Вече имаме група с потребители, които трябва да могат да изпълняват командата. Сега трябва да използваме chgrp, за да сменим групата на самата програма:
#chgrp {група} {път_до_приложението}
#chgrp restrictedapp /usr/local/bin/start
Трябва да използваме командата chmod, за да ограничим достъпа на всички, които не са от групата restrictedapp да имат достъп до приложението.
#chmod 750 {път_до_приложението}
#chmod 750 /usr/local/bin/start
Стъпка 3: Тествайте
Пробвайте първо да изпълните комадата с потребител ivan:
#su – ivan
#/usr/local/bin/start
#exit
#su – valeri
#/usr/local/bin/start
bash: /usr/local/bin/start: Permission denied
Забележка:
Възможностите, които ви се предлагат от командите chmod, chgrp и usermod, не ви предлагат пълен контрол върху изпълнението на дадени приложения. По-добрия вариант би било да се въведат SELinux и ACL-и на файловата система.

Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Взимане на част от текст с bash
- Когато rm се оплаква, че не може да трие
Filed under: Статии | No Comments »
Взимане на част от текст с bash
октомври 6th, 2009
Можем да вземем само част от даден текст много лесно с Bash. Нека да кажем, че имаме 1234567890 или abcdefghij. Може да го направим така :
num="1234567890";
echo ${num:5:7}5 указва началото, а 7 колко символа да вземе.

Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Когато rm се оплаква, че не може да трие
Filed under: Статии | No Comments »
Когато rm се оплаква, че не може да трие
октомври 6th, 2009
Има ограничение на командата rm, когато се опитате да триете много файлове с *. Например:
rm -rf something*
Ако има много файлове, които започват с something, rm няма да може да ги изтрие и ще изведе:
/bin/rm: Argument list too long.
Решението на проблема е да ползвате find, xargs и rm.
find . -name 'something*' -print0 | xargs -0 rm -rf
Проблема може да се разреши по още един начин:
find . -name 'something*' -exec rm -rf {} \;
Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
Filed under: Статии | No Comments »
umask: създаване на нови файлове с определени права
октомври 6th, 2009
Замисляли ли сте се, че всеки път като създаваме файлове в Линукс те се създават с определени права ? Нека да пробвам:
Lets see this:
touch testing ls -l testing
-rw-r--r-- 1 test test 0 2008-03-08 01:14 testing
Файла не би трбвало да се създаде с права за изпълнение, както виждаме изхода от ls. Нека да дадем права за изпълненеи на файла.
chmod +x testing ls -l testing
-rwxr-xr-x 1 test test 0 2008-03-08 01:16 testing
Както виждате в момента режима е 755(повече информация за правата върху файловете тук).
За да конторлираме как се създават новите файлове, може да използваме umask. Може да се каже, че umask е обратното на атрибитите на файла. Нека да кажем, че искате файловете да се създават винаги с 774 (-rwxrwxr–) атрибути, вашата umask ще е 003. Как разбрахме? 777 – 774 = 003.
За да проверим сегашната umask, който е в сила, просто напишете:
umask 0022
Първата стойност отпред 0 указва, че това това е осмична(в осмична бройна система) стойност, затова нашите атрибути по подразбиране за създаване на файлове са 755, но понеже атрибута за изпълнение не се слага по подразбиране стават 644, когато създаваме нови файлове.
Нека да сменим на 0003, което означава, чес искаме атрибутите да са 774 (rwxrwxr–).
umask 0003 touch testing2 ls -l testing2
-rw-rw-r-- 1 test test 0 2008-03-08 01:27 testing2
Атрибутите са 664, и като добавим правата за изпълнение получаваме:
chmod +x testing2 ls -l testing2
-rwxrwxr-- 1 test test 0 2008-03-08 01:27 testing2
Сега имаме 774, въпреки чеchmod +x , не добава права за изпълнение на всички други потребители. Това се дължи на umask, който ползваме. Разбирасе винаги може да го направите изпълним така с chmod o+x.
За какво да го използваме ?
Нампример нека да предположим, че имате потребител, чиито файлове трябва да могат да се четат от групата, на която той принадлежи, но файловете му да не могат да се променят или да се изпълняват. Освен това не позволяваме на всички други да му четат файловете. Това може да го постигнем с umask като въведем umask 0037 в неговия ~/.bashrc

Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
Filed under: Статии | No Comments »
Права за достъп до файлове
октомври 6th, 2009
chmod (change mode) е доста често използвана команда за администрация. Обикновено я ползваме, за да направим даден скрипт, написан на bash, python, perl изпълним.
За да на правил файл изпълним:
chmod +x myscript.sh
По подразбиране това ще промени атрибута за всички. Файловите атрибути са 3 вида:
u ( user – собственик на файла)
g ( групата, в която е потребителя)
o ( всичко останали потребители)
a ( всички гореспоменати)
Това означава, че горната команда е подобна на тази:
chmod a+x myscript.sh
По този начин ще позволим само на собственика на файла да го изпълнява:
chmod u+x myscript.sh
Може да премахвате атрибути от файл. Да кажем, че имате права за изпълняване от всички, но искате да не е изпълним от всички други (които не са потребителя или не са от неговата група):
chmod o-x myscript.sh
Освен атрибута за изпълнение, имаме атрибути за писане и четене. За тях важи горенаписаното.
Например искам да махна атрибутите за четене и писане на всички други потребители:
chmod o-rw myscript.sh
chmod може да се изпълнява и по друг начин. Може да използваме цифри за да укажем атрибутите, вместо символи.
Цифрите, които оказват атрибутите са показани по-долу:
execute = 1 (изпълнение)
write = 2 (писане)
read = 4 (четене)
В този ред на мисли ако са включени атрибутите за четене и писане имаме 2+4 = 6, а ако са включени за изпълнение и четене имаме 1+4 = 5.
За да може собственика на файла да има rwx атрибути, но групите, на които принадлежи, и всички останали да имат само rx, може да направим това:
chmod 755 myscript.sh
Така, 7= 4+2+1 (rwx) и 5 = 4+1 (rx).

Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
Filed under: Статии | No Comments »
Къде се намират програмите ми и техните конфигурационни файлове ?
октомври 6th, 2009
Когато искаме да намерим пълния път до дадена програма, обиконовенно използваме which.
Например, ако искаме да видим къде се намира mplayer, може да направим това:
which mplayer
Има още една команда, която освен, че ви показва пътя до бинарките, ви показва и пътя до сорс файловете, конфигурационите файлове и man страниците.
whereis mplayer
Ще върне това:
mplayer: /usr/bin/mplayer /etc/mplayer /usr/lib/mplayer /usr/X11R6/bin/mplayer /usr/bin/X11/mplayer /usr/share/mplayer /usr/share/man/man1/mplayer.1.gz
Това е интересна команда, но не винаги може да ви покаже всичко от което имате нужда. Но въпреки това whereis е доста добра команда за трсене на файлове, свързани с дадена бинарка. Разбира се има опции, които могат да се подават на whereis и да се променя начина, по който работи. За повече информация man whereis.

Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
Filed under: Статии | No Comments »
Как да покажем споделените библиотеки, от които се нуждае програма ?
октомври 6th, 2009
Почти всяка програма в Линукс използва споделени библиотеки, дори тези които са компилирани на ръка със gcc. Може да се окаже, че дадена програма компилирана на дадена дистрибуция може да не работи под друга или по-стара версия на същата, на която е била компилирана. Всичко това може да се дължи на липсващи споделени библиотеки.
Можем да използваме ldd за да разберем, от кои библиотеки има нужда нашата програма. Нека да приемем, че имаме програма която се казва по някакъв начин, matrix например. Може да разберем какви споделени библиотеки са й нужни като напишем:
ldd matrix
linux-gate.so.1 => (0x00110000)
libncurses.so.5 => /lib/libncurses.so.5 (0x00111000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x0793a000)
libm.so.6 => /lib/libm.so.6 (0x0056e000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0790d000)
libc.so.6 => /lib/libc.so.6 (0x00413000)
libdl.so.2 => /lib/libdl.so.2 (0x00599000)
libtinfo.so.5 => /lib/libtinfo.so.5 (0x00ad0000)
/lib/ld-linux.so.2 (0x003f4000)Тук виждаме че използва libncurses.so.5. Този файл може да се намира в /usr/lib, /usr/share/lib, /lib или /usr/local/lib. Освен това, файла може да е връзка към истинския файл и да ви е нужна реалната .so библиотека.
Споделените библиотеки също биха могли да имат зависимости и да се нуждаят от други библиотеки. В този случай виждаме:
ldd -v matrix
...
/lib/libncurses.so.5:
libdl.so.2 (GLIBC_2.1) => /lib/libdl.so.2
libdl.so.2 (GLIBC_2.0) => /lib/libdl.so.2
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
...Вижда се, че libncurses има нужда от libc и libdl също.

Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
Filed under: Статии | No Comments »
Slackware news: 4 Октомври 2009
октомври 4th, 2009
Има две важни промени днес PHP и Samba. Промените са направени едновременно в -Stable и в -Current. В -Current, обаче има и доста други промени като MySQL, Amarok, QT, Perl, както и GCC 4.4.1.
Това е последното от -Current changelog-а:
Sun Oct 4 00:17:50 CDT 2009 ap/mysql-5.1.39-i486-1.txz: Upgraded. This bumps the version of the shared libraries to .so.16.0.0. d/perl-5.10.1-i486-1.txz: Upgraded. Compiled against mysql-5.1.39, upgraded to perl-5.10.1, DBD-mysql-4.013, DBI-1.609, and URI-1.40. kde/amarok-2.2.0-i486-1.txz: Upgraded. l/qt-4.5_0bd8418-i486-1.txz: Upgraded. This is the KDE Qt 4.5.2-patched git branch, compiled against mysql-5.1.39. l/redland-1.0.9-i486-1.txz: Upgraded. Compiled against mysql-5.1.39. l/soprano-2.3.1-i486-1.txz: Upgraded. l/taglib-1.6-i486-1.txz: Upgraded. l/taglib-extras-1.0.1-i486-1.txz: Upgraded. n/openssh-5.3p1-i486-1.txz: Upgraded. n/php-5.2.11-i486-1.txz: Upgraded. This release fixes some possible security issues, all of which have "unknown impact and attack vectors".For more information, see: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3291 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3292 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3293 (* Security fix *) Also, thanks to Frank Gingras and Rich Bowen for helping to improve the syntax in mod_php.conf. n/samba-3.4.2-i486-1.txz: Upgraded. This update fixes the following security issues. A misconfigured /etc/passwd with no defined home directory could allow security restrictions to be bypassed. mount.cifs could allow a local user to read the first line of an arbitrary file if installed setuid. (On Slackware, it was not installed setuid) Specially crafted SMB requests could cause a denial of service. For more information, see: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2813 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2948 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2906 (* Security fix *) testing/packages/gcc-4.4.1/gcc-4.4.1-i486-1.txz: Added. testing/packages/gcc-4.4.1/gcc-g++-4.4.1-i486-1.txz: Added. testing/packages/gcc-4.4.1/gcc-gfortran-4.4.1-i486-1.txz: Added. testing/packages/gcc-4.4.1/gcc-gnat-4.4.1-i486-1.txz: Added. testing/packages/gcc-4.4.1/gcc-java-4.4.1-i486-1.txz: Added. testing/packages/gcc-4.4.1/gcc-objc-4.4.1-i486-1.txz: Added.

Possibly Related Posts:
- GoblinX 3.0
- Facebook пуска свободен високопроизводителен сървър
- Linux 2.6.31
- Излезе KDE 4.3.0
- Slackware News: 17 Юни 2009
Filed under: Новини | No Comments »
GoblinX 3.0
октомври 3rd, 2009
Flavio Pereira de Oliveira представи днес последната версия на неговата популярна Slackware-базирана жива дистрибуция, GoblinX, още позната като G:Standard. GoblinX 3.0 имаше пет десктоп мениджъра, но явно Flavio е решил да запази само един KDE. С KDE4, тази дистрибуция включва стабилност и добър външен вид в един ISO имидж.
В новата версия на GoblinX 3.0:
· KDE 4.2.4;
· Opera 10 (с поддръжка на Slik/Webmount);
· Подобрения на KDE 4;
· Обновен X.Org;
· Обновени са различни пакети;
· Оправени са много бъгове и грешки;
· Добавени са различни програми;
· Добавени са някои GTK+2 приложения;
· Много допълнителни подобрения и модификации…
Има няколко бъга все още. Например GoblinX 3.0 не може да работи на FAT32 файлова система на USB флаш памети, понеже KDE4 не може да се тръгне ако се използва Posixovl за запис на промените. Освен това драйвера за Интелски видео карти (xf86-video-intel), има проблеми с ядтотро 2.6.27. Напредналите потребители могат да сменят a.NX11-3.0-i486-1.lzm пакета с a.NX11-3.0-i486-2.lzm и да ребилднат ISO имиджа. Втория пакет съдържа старата версия на X.Org сървъра, която работи добре с Интелски видео карти.
За GoblinX
GoblinX е жива дистрибуция, базирана на Slackware и създадена с помощта на Linuxlive сцриптовете на Flavio de Oliveira. Дистрибуцията е перфектна за тези, които искат качествени приложения и практичен и красив десктоп. Дистрибуцията включва някои от най-използваните приложения и позволяван на всеки да си я променя по много лесен начин.

Possibly Related Posts:
- Slackware news: 4 Октомври 2009
- Facebook пуска свободен високопроизводителен сървър
- Linux 2.6.31
- Излезе KDE 4.3.0
- Slackware News: 17 Юни 2009
Filed under: Новини | No Comments »
Slackware по лесния начин
септември 20th, 2009
Дайте на човек Ubuntu, и той ще научи Ubuntu. Дайте на човек SUSE, и той ще научи SUSE. Ако дадете на човек Slackware, той ще научи Linux. Това гласи старата максима, обикновено използвана с насмешка, но все още важеща.
Ако някога сте се чудили какво прави Slackware толкова популярен сред Линукс ветераните ви представям малко съвети как да започнете и малко история.
Slackware е странно животно, което си живее докато другите дистрибуции се борят за популярност сред Линукс потребителите. Slackware не се опитва да обземе огромен дял от настолните компютри, нито има мигащи светлини, инструменти, които те държат за ръчичка докато правиш нещо, или пакетни мениджъри, които се променят със всяка следваща версия. Slackware ви предоставя една истинска GNU/Linux операционна система – само най-важното, без дългото компилиране на Linux From Scratch.
Има няколко причини Slackware да има закоравял фенове, обикновено хора, които ползват Линукс отдавна, но и начинаещи също. Четирите най-чести причини:
- Изцяло се разработва от един човек.
- Пакетите не се пачват до последно.
- Съвсем е достатъчна за своята “дистросфера”.
- Много, много, много стабилна е.
Нека да погледнем по-отблизо. От първата си версия пусната през 1993, Slackware се разработва от един човек: родения в Калифорния, 42 годишен Патрик Волкердинг(Patrick Volkerding). В началото са му помагали разработчици, но сега е единствения, с изключение на феновете, които помагат за отстраняване на проблеми и пачване. Чрез продажбата на дискове със Slackware той си финансира работата върху проекта.
Имате въпрос? Обадете се на Пат. Имате предложение? Обадете се на Пат. Искате да съобщите за проблем? Обадете се на Пат. Той е “човека” в Slackware средите.
Неизвестния софтуер
Повечето дистрибуции взимат оригиналния код на програмите, след това започват да ги пачват и променят. Това може да промени програмата многократно – един, два, 10 пъти, колкото е нужно, за да може да работи с другия софтуер от дистрибуцията. Това не пречи на много потребители, но ако искате да сте сигурни, че ползвате това, което разработчика е написали имал в предвид, е по-добре да ползвате Slackware.
Това не означава, че няма пачове в Slackware, но една много голяма част от софтуера е непроменен и не ви оставя впечатлението, че получавате подменена версия на оригинала.
Има и още една страна на проблема. Независимо от какво са ви заблуждавали при избор на дистрибуция, Slackware има пакетна система. Тя е базирана на архиви (.tgz и .txz файлове), вместо оплетена система, базирана на зависимости, с допълнителни бази, съдържащи RPM и Deb файлове. Преимуществото е, че пакетите на Slackware много лесно се отварят, променя се нещо и пак се сглобяват.
Фокуса на дистрибуцията е простотата за изпълнение, което е довело до няколко жертви в историята на Slackware. Най-забележимата жертва е Gnome. През 2005, Пат решава, че работата за съставянето и интегрирането на голямото разнообразие от Gnome пакетите и техните зависимости е прекалено и казва:
“Please do not incorrectly interpret any of this as a slight against Gnome itself, which (although it does usually need to be fixed and polished beyond the way it ships from upstream more so than, say, KDE or Xfce) is a decent desktop choice.”
Това предизвиква появата на допълнителни проекти от независими разработчици, като Dropline Gnome, който стартира малко след съобщението. Това е една много добра реализация на Gnome, но съобщението към разработчиците е явно: Ако искате вашия софтуер в Slackware, уверете се, че е подреден и неговата поддръжка е лесна.
Знайте си целите
Стигаме до третата точка: Slackware е стабилна дистрибуция, която не е много подходяща за начинаещи. Всъщност не е никак трудна за използване, но няма например графичен инсталатор или помощници, които да ви водят и обясняват всеки аспект от инсталацията. Хората, кото ползват Slackware, би трябвало да са имали срещи с командния ред и да са редактирали конфигурационни файлове, което води до максимата в началото: ако решите да използвате Slackware, няма да бъдете предпазен от работа от команден ред

Slackware Installer
.
Така може да научите основата на Линукс и, понеже дистрибуцията няма огромен брой нестандартни промени и пачове към софтуера, не се оказвате в положението да търсите къде се намират безбройните специфични за дистрибуцията конфигурационни файлове. Ако например научите всичко за Fedora, вие ще сте Fedora гуру (което е яко). Ако обаче се научите да работите със Slackware, ще имате познания, които са обши за много дистрибуции.
Slackware не се опитва да бъде най-добрата дистрибуция за всички новаци ползващи Линукс; опитва се да бъде най-добрата дистрибуция за тези, които знаят точно какво искат и какво не искат да има в дистрибуцията. (Например: Yast от SUSE, много мощен и полезен инструмент, който в същото време може да създаде адски много проблеми на напреднал потребител с промяната на конфигурационните файлове.)
Надеждност
Нека да разгледаме колко е стабилна Slackware. Без огромната поддръжка като при Debian, бихте си помислили, че Slackware е по-податлива към проблеми, но се оказва, че това не е така. Пат е консервативен, когато става дума за интегриране на нов софтуер.
Факта, че само един човек се грижи за всичко помага доста за стабилността. Наличието на много разработчици може да доведе до различия в качеството на пачовете, докато Пат изгражда всичко преди да пусне нова версия. Това води до широк и контролиран поглед над дистрибуцията. Със сигурност големите дистрибуции като Debian имат нужда от големи екипи и в този смисъл подхода работи добре, но за Slackware подхода, при който един човек прави всичко, върши също толкова добра работа.
Това е Slackware. Не е много лесен за начинаещите, е една от най-харесваните дистрибуции след 15 години. Средностатистическия потребител би трябвало я пробва поне веднъж. Само се пазете от друга мъдрост известна в Slackware средите: “Once you go Slack, you’ll never go back.”

Slackware Desktop
Има KDE и Gnome пакети, но такава дистрибуция заслужава Xfce, според мен.
Slackware изисква най-малко 486 CPU и 48MB RAM, така че е полезен за възкресяване на стари компютри. Ако искате да се възползвате от допълнителните възможности е добре да имате 1GHz CPU и 256MB RAM. От сайта на Slackware може да свалите ISO-та на последната версия – имате нужда само от диск 1 и 2. Запишете ги на CD-R. На тях се съдържа основата на Slackware, Xfce и различни приложения. След това следвайте стъпките.
Инсталиране на Slackware

Slackware installation step 1

Slackware install step2

Slackware installation step3

Slackware installation step4

Slackware installation step5

Slackware installation step6
Графична среда
Slackware не ви казва какво да правите – не се опитва да познава какво искате да правите. Може да използвате дистрибуцията за сървър или за рутер. В тези случаи конзолната е перфектна като избор. Има възможност обаче да я използвате и за настолен компютър. Ето как да си пуснете графичната среда.
В конзолата се логнете като root с паролата, която сте въвели по време на инсталацията. За да подкарате X сървъра (графичния режим), въведете startx и ще се появи мениджъра на прозорци, който сте избрали по време на инсталацията. Отбележете, че работите като потребителя root в монета, така че всичко, което правите може сериозно да повреди вашата инсталация, затова бъдете много предпазливи.
Ако искате всеки път да се пуска графична среда отворете файла /etc/inittab с редактор по ваш избор (например Vi или Nano). Търсете за това:
id:3:initdefault:
Това указва runlevel-а по подразбиране, в който Slackware се пуска или с други думи какви услуги да се пускат. Над този ред трябва да има други коментирани редове, които обясняват другите runlevel-и. Забележете че runlevel 4 се използва за X11. Затова заменете 3 с 4 и като рестартирате ще имате графична среда.
Добавяне на нов потребител
Използването на която и да е дистрибуция като потребителя root е лоша идея особенно ако не знаете какво правите. Добре е да си направите нормален потребител, с ограничени права. Отворете терминал и напишете adduser. Ще ви бъде поискано име, домашна директория, shell, парола и други опции. На този момент има нужда само да въведете потребителско име и парола. Другите полета ще бъдат попълнени автоматично със стойности по подразбиране.
Управление на пакетите
Нека да разгледане пакетната система с повече детайли. Както споменахме по-рано, пакетите на Slackware са .tgz или .txz архиви с малко допълнителна информация в текстови файлове в архива. Може да ги разархивирате по обичайния начин (tar xfvz име_на_файл) и да видите какво има в тях. Разархивират се в / директорията, така че някой файлове ще отидат в /etc, /usr и т.н.
Освен това в пакета винаги има директория install, която указва на пакетната система на Slackware какво да прави при инсталация(doinst.sh) и какво прави пакета(slack-desc). Нормалните пакети на Slackware не съдържат информация за зависимости. Дистрибуцията приема, че вече знаете какво прави софтуера и какво му трябва, за да работи предварително. Това може да изглежда дразнещо в началото, но когато ви е писнало от дистрибуции, които свалят хиляди “препоръчителни” пакети със съмнителен произход за инсталиране на една програма, ще оцените контрола, който ви предоставя Slackware.
Ако имате пакет, който искате да инсталирате, най-лесния начин е:
installpkg filename.tgz
По-елегантно решение е да се използва pkgtool, който представлява интерфейс с менюта. С него може да преглеждате списък с пакети в директория или да изтривате пакети. Друг инструмент, който може да ползвате е slapt-get (http://software.jaos.org), който както загатва името приличан на apt-get на Debian/Ubuntu производните. Позволява ви да изтегляте пакети от различни източници в Интернет като официалните архиви на Slackware или www.linuxpackages.net, и включва базова поддръжка на зависимости, ако имате нужда от такива.

pkgtool
Допълнителна информация
Тук ще намерите книгата за Slackware. Това е PDF документ от 284 страници, който покрива инсталацията, конфигурацията и администрацията в дълбочина. Добре е да се прочете веднъж след като сте инсталирали дистрибуцията. Ето и цитат от книгата:
“We hope you’ll lend it to all of your friends when they come asking about that cool Slackware operating system you’re running. While this book may not be an edge-of-your seat novel, we certainly tried to make it as entertaining as possible. With any luck, we’ll get a movie deal.”

Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
Filed under: Статии | 3 Comments »
Основи на Линукс автоматизацията
септември 19th, 2009
Тази статия описва начина, по който могат да се изпълняват команди в определено време без да се налага на потребителя да ги въвежда. Програмите отговорни за това в линукс са cron и at.
Изпълняване на команди в точно определено време:
Ако нямате нужда командата да се изпълнява редовно може да използвате. Например може да ползвате :
at midnight
След като изпълните това ще си се покаже at командния ред( at>; ). Напишете командата, която искате да се изпълни. Например:
at>; who > who.out
Можете да въвеждате по една команда на ред. Когато сте готови натиснете Ctrl и D. Сега би трябвало да видте :
X 2006-05-26 00:00 a yourname
Където X е номера на вашата команда. Тази поредица от команди казва на вашата машина да изпълни в полунощ командата, която сте въвели.
Ако решите, че вече на искате да се изпълнява тази команда, може да използвате :
atrm X
X е номера на командата, която искате да не се изпълнява. atrm е командата, с която се премахват задачи зададени с at.
atrm поддържа много разновидности на въведеното време. Например може да ползвате: morning, noon, teatime, or midnight. “teatime” също работи и изпълнява команди в 4 следобед!
Ако ви се налага да изпълнявате една команда всеки ден от месеца например, може тогава не е удобно всеки ден да назначавате да се изпълнява. Cron ви позволява да изпълнявате команди по този начин. Освен това има една много важна разлика между cron и at. at може да се изпълнява само от root, a cron от всички потребители.
Може да има различни настройки за всеки потребител на системата. Преди да започнете каквото и да било трябва да се уверите, че cron работи като демон.
За да можем да създаваме задачи, трябва да разберем как работи Cron. Най-добрия начин е чрез примери.
Първо, всяка задача за cron има следния синтаксис:
Minute (0-59) Hour (0-23) Day of Month (1-31) Month (1-12 or Jan-Dec) Day of Week (0-6 or Sun-Sat) Command
Не е нужно да се указва всяко поле. Ако искате да укажете всеки месец например може да използвате *. Това е пример как може да използване *.
* * * * 5 who
Това ще изпълнява командата who всяка минута, от всеки час, от всеки месец от за всеки петък. Използваме 5 на мястото на ден от седмицата.
5 * * * * who
Това ще изпълнява командата who на всяка пета минута, от всеки час, от всеки месец, за всеки ден от седмицата. Тук използваме 5 на мястото на минутите.
Ако искате някаква команда да се изпълнява всяка вечер в полунощ?
0 0 * * * whо
Това ще изпълнява командата who в полунощ, всеки месец, за всички дни от седмицата. Тук 0 има на мястото за часове и минути и представлява полунощ.
За повече гъвкавост може да използваме / (наклонена черта). Например:
*/15 * * * * who
Този ред ще изпълнява командата who всеки 15 минути, от всеки час, от всеки месец, за всички дни от седмицата. Използване /15 на мястото на минутите за да покажем колко често трябва да се изпълнява задачата.
Има и други опции, но за да не усложняваме ще ги пропуснем.
Създаване на автоматична задача
За да можете да задавате задачи на cron процеса трябва да използвате crontab. Тази команда се въвежда на командния ред. Като изпълните командата тя отваря редактора по подразбиране на вашата дистрибуция и ви дава възможност да редактирате всички задачи за вашия потребител. Може да въведете това, което искате да изпълнявате :
Първо изпълнявате командата с параметър -е (edit):
crontab -e
След това въвеждате задачата:
*/15 * * * * yourcommand
Заменете yourcommand, с това което искате да изпълнявате. След това запазете файла и излезте от редактора. Трябва да видите нещо от сорта на:
crontab: installing new crontab
Току що създадохте задача, която ще се изпълни от вашия потребител в уреченото време(на всеки 15 минути от всеки час, от всяка седмица, от всеки месец, за всеки ден от седмицата).
Изчакайте да се изпълни командата. Ако се пуснали crond с възможност да записва задачите, които изпълнява, може да проверите какво става така :
tail -f /var/log/cron
Може да редактирате задачата по същия начин, по който я създадохте, само че редактирате файла и запазвате. За да изтриете всички задачи може да използвате:
crontab -r
Ако искате да изтриете само някои:
crontab -е
След това изтривате редовете, които не са нужни вече и запазвате.
Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
Filed under: Статии | No Comments »
Facebook пуска свободен високопроизводителен сървър
септември 11th, 2009
Facebook пуска фреймуорк, Tornado, която е написана на питон и е написана специално за обработване на големи обеми информация едновременно. Торнадо е фокусирана върху скоростта на обработка на данните и едновременното обработването на огромни количества трафик. Технологията се разпространява под Apache 2.0 лиценз.
Цялата новина може да научите тук.
Possibly Related Posts:
Filed under: Новини | No Comments »