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

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

## 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. 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 trixie main non-free-firmware contrib non-free

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

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

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

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

Глава 4. Проблемы совместимости |  | Глава 6. The Debian archives