Страница:
Сергей Акимович Яремчук
200 лучших программ для Linux
dgurski@minsk.piter.com (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На сайте издательства http://www.piter.com вы найдете подробную информацию о наших книгах.
http://www.gnu.org/home.ru.html) дано пояснение английского слова free. По их мнению, программное обеспечение – это предмет свободы, а не цены, и, чтобы понять идею, свободное программное обеспечение не нужно ассоциировать с бесплатным мороженым, то есть свободное не обязательно должно быть бесплатным. Свободное программное обеспечение позволяет пользователям свободно запускать, копировать, распространять, изучать, изменять и улучшать программное обеспечение. Более точно это раскрыто в четырех типах свободы для пользователей программного обеспечения:
• свободно запускать программы для любых целей (свобода 0);
• свободно изучать, как работает программа, и иметь возможность свободно адаптировать ее под свои нужды (свобода 1); доступ к исходным кодам является непременным условием;
• свободно распространять копии, чтобы помочь тем, кто интересуется свободным программным обеспечением (свобода 2);
• свободно улучшать программы и делать улучшения доступными для других; из этого извлекает пользу все сообщество (свобода 3); доступ к исходным кодам является непременным условием.
Такой подход дает программисту простоту и быстроту разработки. Он использует уже готовые компоненты, не вникая в суть их работы, и создает новый продукт.
Каждый улучшает только свою часть продукта. Так, в Linux очень много консольных утилит. Начинающему пользователю непросто освоить все параметры командной строки, ему удобнее, чтобы программа имела понятный и легкий в освоении графический интерфейс. Программист же не создает новый продукт, он берет все консольные утилиты и пишет к ним графическую надстройку – фронт-энд (front-end), который скрывает от пользователя особенности работы консольных программ, часто добавляя новую функциональность. Например, популярный консольный видеопроигрыватель MPlayer имеет несколько таких надстроек – Kplayer, KMplayer, smplayer, Freevo и другие.
Однако чтобы такая программа заработала, необходимо установить все остальные компоненты и библиотеки, которые она использует. Например, для популярной утилиты записи дисков K3B потребуется установить 48 библиотек и программ (рис. 1.1).
Рис. 1.1. Список зависимостей пакета K3B
Такие пакеты называются зависимостями. Большинство из них, вероятно, уже есть в системе, но если не будет хотя бы одного, то установить программу будет проблематично либо после установки она не будет иметь полную функциональность.
Зависимости бывают двух видов:
• жесткая (hard): обязательная, без нее программа, скорее всего, не будет работать;
• мягкая (soft): рекомендуемая, без нее программа работать будет, но, установив такой пакет, можно добавить приложению функциональность (например, работу с некоторым форматом файлов).
Именно поэтому, скачав всего один пакет, установить программу часто не получается.
Есть еще одна проблема, о которой необходимо знать. В отличие от Windows, релизов которой не так много, дистрибутивов Linux огромное количество. Они отличаются не только названием, так как Linux – это только ядро, разрабатываемое под руководством Линуса Торвальдса, а все остальное – это что-то вроде набора «Сделай сам». Эти наборы хороши, но часто не только не совместимы между собой, но и для каждой новой версии одного и того же дистрибутива потребуется специально собранный пакет. Не будем вдаваться в подробности, тем более что не все так плохо, так как в популярных решениях используются пакетные системы, скрывающие такие особенности, но об этом просто нужно знать.
http://www.gentoo.org/), в котором применена аналогичная система портежей (portage).
Примечание
Дистрибутив Gentoo (произносится как «дженту») был назван в честь пингвина Pygoscelis papua, которому принадлежит рекорд скорости плавания (27 километров в час), что выражает основные свойства дистрибутива.
Дистрибутив Gentoo можно полностью собрать самостоятельно либо использовать минимальную систему, в которую затем добавлять программы. Для установки приложений с помощью портежей вначале необходимо скачать и распаковать в каталог /usr снимок дерева портежей.
$ wget –c http://adelie.polymtl.ca/snapshots/portagelatest.tar.bz2
$ tar -xvjf portage-latest.tar.bz2 -C /usr
В дальнейшем следует периодически (не чаще раза в сутки) обновлять дерево портежей командой:
# emerge –sync
Пользоваться портежами просто. Например, чтобы найти пакет, в котором содержится слово pdf, выполняется такая команда:
$ emerge –search pdf
Выбираете по описанию то, что нужно, и устанавливаете, используя имя пакета:
# emerge gnumeric
Для загрузки только исходного кода без установки пакета выполняется:
# emerge –fetchonly gnumeric
Удаляется пакет также просто:
# emerge –unmerge gnumeric
Настройка оптимизации Gentoo производится в переменных (CHOST, CFLAGS, CXXFLAGS и USE) в файле /etc/make.conf. Для более детальной настройки необходимо посмотреть некоторые значения в файлах /etc/make.globals, /etc/make.profile/make.defaults и переопределить их в /etc/make.conf.
В первую очередь это переменная USE. Смысл ее заключается во включении и выключении различных параметров, которые обычно используются при конфигурировании командой ./configure при обычной компиляции программы из исходных текстов, то есть –enable/disable или –with/without. Например, закомментированная переменная USE такого содержания
USE="X gtk gnome -alsa"
соответствует
./configure –with-x –with-gtk –with-gnome –without-alsa.
Строка CHOST='i686-pc-linux-gnu' указывает на используемую архитектуру. Все современные процессоры соответствуют данному описанию; если у вас более ранняя модель вроде Pentium Pro, измените ее на меньшую (i586, i486 или i386). С помощью CFLAGS компилятору сообщается, какой процессор используется и какой требуется уровень оптимизации, после чего компилятор в соответствии с установленной моделью собирает пакеты под указанную модель процессора:
CFLAGS="-march=pentium4 -O3 -pipe "
Примечание
Для получения информации о процессоре введите cat /proc/cpuinfo.
Можно использовать флаг -mcpu=, который оптимизирует программу под указанный процессор без потери совместимости с другими процессорами. Флаг -march= требует более осторожного обращения, так как оптимизированная с ним программа будет работать только на указаном процессоре без совместимости с более старыми типами, однако при этом будет достигнута максимальная производительность.
Более подробно о параметрах make.conf можно почитать в документации Gentoo (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml, русский перевод – http://www.gentoo.org/doc/ru/handbook/).
В Gentoo есть и прекомпилированные пакеты – пакаджи (англ. package – «пакет»), которые пользователь может собрать самостоятельно, используя ключи –buildpkg или –buildpkgonly при выполнении команды emerge. После этого собранный пакет устанавливается командой:
# emerge –usepkg –getbinpkg gnumeric
Пакаджи официально не поддерживаются, но их удобно использовать в случае, когда необходимо установить программу, которая долго компилируется на несколько компьютеров.
Gentoo – это не единственная подобная система. Система портов используется в дистрибутивах CRUX, Archlinux, Sorcerer и SourceMage, в которых она сосуществует с развитыми средствами пакетного менеджмента.
Дистрибутив Gentoo (произносится как «дженту») был назван в честь пингвина Pygoscelis papua, которому принадлежит рекорд скорости плавания (27 километров в час), что выражает основные свойства дистрибутива.
$ tar -xvjf portage-latest.tar.bz2 -C /usr
Для получения информации о процессоре введите cat /proc/cpuinfo.