Глава 5. Программное обеспечение, доступное в системе Debian

Содержание

5.1. Какие виды приложений и средств разработки программ доступны в Debian GNU/Linux?
5.2. Кто написал все эти программы?
5.3. Как получить текущий список программ, для которых в Debian собраны пакеты?
5.4. Как установить окружение разработчика для сборки пакетов?
5.5. Чего не хватает в Debian GNU/Linux?
5.6. Почему иногда выдаются сообщения «ld: cannot find -lfoo» при компиляции программ? Почему не хватает каких-то файлов libfoo.so в пакетах Debian с библиотеками?
5.7. Поддерживает ли Debian Java (и если да, то как)?
5.8. How can I check that I am using a Debian system, and what version it is?
5.9. Как в Debian поддерживаются языки, отличные от английского?
5.10. Где ezmlm/djbdns/qmail?
5.11. Где проигрыватель Flash (SWF)?
5.12. Где Google Earth?
5.13. Где программы для VoIP?
5.14. I have a device that requires non-free firmware. What should I do?
5.15. У меня есть беспроводная сетевая карта, которая не работает в Linux. Что делать?

5.1. Какие виды приложений и средств разработки программ доступны в Debian GNU/Linux?

Как и многие другие дистрибутивы Linux, Debian GNU/Linux предоставляет:

  • основные приложения GNU для разработки программного обеспечения, работы с файлами и обработки текста, включая gcc, g++, make, texinfo, Emacs, оболочку Bash и множество усовершенствованных утилит Unix;

  • Perl, Python, Tcl/Tk и множество программ, модулей и библиотек для этих языков;

  • TeX (LaTeX) и Lyx, dvips, Ghostscript;

  • оконную систему Xorg, предоставляющую сетевой графический пользовательский интерфейс в Linux, и несметное количество X-приложений, в том числе окружения рабочих столов GNOME, KDE и Xfce;

  • a full suite of networking applications, including servers for Internet protocols such as HTTP (WWW), FTP, NNTP (news), SMTP and POP (mail) and DNS (name servers); relational databases like PostgreSQL, MySQL; also provided are web browsers including the various Mozilla products,

  • a complete set of office applications, including the LibreOffice productivity suite, Gnumeric and other spreadsheets, WYSIWYG editors, calendars.

More than 63879 packages, ranging from news servers and readers to sound support, FAX programs, database and spreadsheet programs, image processing programs, communications, net, and mail utilities, Web servers, and even ham-radio programs are included in the distribution. Other 1082 software suites are available as Debian packages, but are not formally part of Debian due to license restrictions.

5.2. Кто написал все эти программы?

Авторы программ, входящих в каждый из пакетов, указаны в соответствующих файлах /usr/share/doc/ПАКЕТ/copyright, где вместо ПАКЕТ нужно подставить имя пакета.

Сопровождающие — это те, кто создаёт пакеты для системы Debian GNU/Linux; они перечислены в управляющем файле Debian (смотрите Раздел 7.4, «Зачем нужен файл control?»), который имеется в каждом пакете. В файле изменений Debian, /usr/share/doc/ПАКЕТ/changelog.Debian.gz, перечислены люди, которые также принимали участие в создании пакета Debian.

5.3. Как получить текущий список программ, для которых в Debian собраны пакеты?

Полный список доступен на любом из зеркал Debian, в файле indices/Maintainers. Этот файл содержит имена пакетов и имена, а также адреса электронной почты соответствующих сопровождающих.

Веб-интерфейс для пакетов Debian удобно распределяет пакеты по приблизительно тридцати "разделам" архива Debian.

5.4. Как установить окружение разработчика для сборки пакетов?

Если вы хотите собирать пакеты в системе Debian, то вам нужно иметь минимальное окружение для разработки, включающее компилятор C/C++ и несколько других важных пакетов. Чтобы получить такое окружение, вам нужно просто установить build-essential. Это метапакет, в зависимости которого включены стандартные инструменты разработки, необходимые для сборки пакетов Debian.

Однако, для пересборки некоторых программ может потребоваться дополнительное программное обеспечение, в том числе заголовочные файлы библиотек или дополнительные инструменты, такие как, например, autoconf или gettext. Debian предоставляет множество инструментов, необходимых для упаковки другого ПО в пакеты Debian.

Иногда бывает довольно сложно выяснить, какие именно программы требуются для сборки, если вы, конечно, не планируете просто пересобирать пакеты Debian. Последнюю задачу решить довольно легко, так как в каждый официальный пакет должен включаться список дополнительного программного обеспечения (кроме пакетов из build-essential), необходимого для его сборки, то есть так называемые сборочные зависимости (Build-Dependencies). Для установки всех пакетов, необходимых для сборки определённого пакета исходного кода, и затем собственно для сборки этого пакета достаточно запустить:

# apt-get build-dep foo
# apt-get source --build foo

Учтите, что если вы хотите собирать ядра Linux, распространяемые в Debian, то вам также нужно установить пакет kernel-package. Подробности см. в Раздел 10.2, «Какие инструменты для самостоятельной сборки ядра есть в Debian?».

5.5. Чего не хватает в Debian GNU/Linux?

There is a list of packages which still need to be packaged for Debian, the Work-Needing and Prospective Packages list.

For more details about adding missing things, see Глава 13, Помощь проекту Debian.

5.6. Почему иногда выдаются сообщения «ld: cannot find -lfoo» при компиляции программ? Почему не хватает каких-то файлов libfoo.so в пакетах Debian с библиотеками?

Политика Debian требует, чтобы определённые символьные ссылки (на libfoo.so.x.y.z или подобные) размещались в отдельных пакетах — пакетах разработки. Эти пакеты обычно называются libfoo-dev или libfooX-dev (если библиотечный пакет называется libfooX, где X — целое число).

5.7. Поддерживает ли Debian Java (и если да, то как)?

В Debian доступно несколько свободных реализаций технологии Java в виде пакетов, предоставляющих Java Development Kits и Runtime Environments. В Debian можно и писать, и отлаживать, и запускать программы Java.

Running a Java applet requires a web browser with the capability to recognize and execute it. Several web browsers available in Debian, such as Mozilla or Konqueror, support Java plug-ins that enable running Java applets within them.

За дополнительной информацией обратитесь к ЧАВО по Java в Debian.

5.8. How can I check that I am using a Debian system, and what version it is?

Для того, чтобы убедиться, что ваша система была установлена с настоящих базовых дисков Debian, используйте команду

lsb_release -a

Она выведет название дистрибутива (в поле Distributor ID) и версию системы (в полях Release и Codename). Ниже приведён пример запуска этой команды в системе Debian:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.4 (wheezy)
Release:    7.4
Codename:   wheezy

Также можно проверить наличие файла /etc/debian_version, который содержит однострочную запись с указанием номера версии выпуска, файл поставляется в пакете base-files.

Однако пользователи должны понимать, что система Debian состоит из многих частей, каждая из которых может обновляться (почти) независимо от других. Каждый «выпуск» Debian содержит строго определённое и неизменяемое содержимое. Обновления доступны отдельно. Чтобы получить состояние установки пакета foo, используйте команду dpkg --list foo. Чтобы посмотреть версии установленных пакетов, запустите команду:

dpkg --status foo

Для просмотра версий всех установленных пакетов, выполните команду:

dpkg -l

Note that the existence of the program dpkg shows that you should be able to install Debian packages on your system. However, since the program has been ported to many other operating systems and architectures, this is no longer a reliable method of determining if a system is Debian GNU/Linux.

5.9. Как в Debian поддерживаются языки, отличные от английского?

  • Debian GNU/Linux распространяется с большим количеством клавиатурных раскладок для множества типов клавиатур и с утилитами (в пакете kbd), которые позволяют устанавливать, просматривать и редактировать таблицы клавиатурных раскладок.

    The installation prompts the user to specify the keyboard to use.

  • Nearly all of the software in Debian supports UTF-8 as character set. Legacy character sets, such as ISO-8859-1 or ISO-8859-2, should be considered obsolete.

  • Currently, support for German-, Spanish-, French-, Hungarian-, Italian-, Japanese-, Korean-, Dutch-, Polish-, Portuguese-, Russian-, Turkish-, and Chinese-language manual pages is provided through the manpages-LANG packages (where LANG is the two-letter ISO country code). To access an NLS manual page, the user must set the shell LC_MESSAGES variable to the appropriate string.

    Например, для чтения на итальянском языке LC_MESSAGES нужно установить в 'italian'. Программа man будет искать справочные страницы на итальянском языке в каталоге /usr/share/man/it/.

5.10. Где ezmlm/djbdns/qmail?

Даниэл Бернстайн (Daniel J. Bernstein) использует для распространения всего своего ПО ограничивающую лицензию, которая не позволяет распространять изменённые двоичные файлы. Однако в ноябре 2007 Бернстайн сказал: «[…] я решил сделать всё написанное мной ПО и то, которое ещё напишу, общественным достоянием.» См. ЧаВо от распространителей на предмет условий его распространения.

В момент написания этого руководства (2016-03), пакет ezmlm-idx был доступен только в экспериментальном выпуске (пакет mlmmj схож с ним и поставляется в составе Debian jessie); пакет djbdns доступен только в sid (нестабильный выпуск), подробности см. в сообщениях об ошибке #516394 и ошибке #796118, в качестве альтернативы рассмотрите пакет dbndns; publicfile не является свободным ПО, пакет publicfile-installer доступен в Debian в разделе contrib.

Другое ПО Дэна Берштайна (qmail, daemontools, ucspi-tcp) поставляется в составе Debian.

5.11. Где проигрыватель Flash (SWF)?

В Debian есть gnash и swfdec — два свободных проигрывателя видео в формате SWF.

5.12. Где Google Earth?

Google Earth is available for GNU/Linux from Google's web site, but not only it is not Free Software, but is completely undistributable by a third party. However, googleearth-package (in the contrib-section) might be helpful in using this software.

5.13. Где программы для VoIP?

Для передачи голоса через IP используются два открытых протокола: SIP и H.323. Оба реализованы в целом ряде программ раздела Debian main. Одним из популярных клиентов является ekiga.

5.14. I have a device that requires non-free firmware. What should I do?

Firmware refers to embedded software which controls electronic devices. Many devices require firmware to operate. Historically, firmware would be built into the device's ROM or Flash memory, but more and more often, a firmware image has to be loaded into the device RAM by a device driver during device initialisation.

Some devices require non-free firmware to work properly. And there could be firmware updates in the future.

In Debian release 11 (bullseye) and older, Debian did not include non-free firmware on official images and live installations. For Debian 12 onwards, all the packaged non-free firmware binaries that Debian can distribute have been moved to a new component in the Debian archive, called non-free-firmware. If you're upgrading from an older release of Debian and you need these firmware binaries, make sure that your sources.list uses this new component:

http://deb.debian.org/debian bookworm main non-free-firmware contrib non-free

For more information please refer to Firmware information in the Debian Wiki.

5.15. У меня есть беспроводная сетевая карта, которая не работает в Linux. Что делать?

Купить ту, которая работает :)

В ином случае используйте пакет ndiswrapper для того, чтобы использовать драйвер для Windows (если у вас таковой имеется) в системе Linux. Дополнительную информацию см. на Debian вики-странице ndiswrapper.