понедельник, Февраль 25, 2008

Установка программ в Debian-основанных дистрибутивах

Сразу после установки системы и графического интерфейса хочется поставить приложения для повседневной работы. Есть несколько способов сделать это, о чём будет говориться в этом посте.

Итак, базовая система поставлена, графическая среда настроена и запущена. В общем, даже краше, чем в Windows - теперь время наполнить это всё нужными и полезными программами. А как ставить программы в Линукс, например в Дебиан?


1. Консольный способ
Этим способом следует воспользоваться хотя бы один раз - мало ли что случится с графической средой (например, при обновлении системы). Консоль всегда рядом, ей можно (и нужно) пользоваться. Можно воспользоваться консольным способом установки программ и в графической среде: для этого запускаем Konsole, Terminal или xterm в зависимости от выбранной среды.

Чтобы найти название пакетов по описанию, выполняем команду:

# apt-cache search чего_хочу | grep чего_конкретно_хочу
Это даст список названий и описаний пакетов, которые вам интересны. Чтобы поставить пакет, пишем:
# aptitude install что_нашёл_
Почти наверняка пакетная система потребует поставить дополнительные пакеты, требующиеся для работы приложения. Смотрим, сколько это займёт, и, если это устраивает, ставим.

Для того, чтобы удалить пакет, выполняем:
# aptitude remove имя_пакета
А чтобы удалить пакет вместе с его конфигурационными файлами, пишем:
# aptitude purge имя_пакета
Опять-таки, знать эти команды очень даже стоит, потому как управлять софтом тогда можно в любой ситуации (не загружаются иксы, обновление системы и проч.).



2. Графический способ
Для любителей графических приложений имеется synaptic - графический интерфейс установки и удаления приложений в Дебиан. Чтобы его поставить, пишем:
# aptitude install synaptic sudo
Последний пакет нужен, так как от рута synaptic стартовать откажется. Под рутом не сидим, не забыли?

Для настройки sudo требуется с рутовыми привилегиями отредактировать файл /etc/sudoers. Заделываемся рутом (вводим в терминале su и пишем свой рутовый пароль) и редактируем файл /etc/sudoers при помощи MC или командой
nano /etc/sudoers
Этот файл нужно довести до, например, такого состояния:

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL
ВАШЛОГИН  ALL=(ALL) ALL

Далее запускаем synaptic при помощи делегирования рутовых полномочий простому пользователю посредством sudo:
$ sudo synaptic
Либо ищем его в меню приложений KDE или GNOME (если вы поставили себе эти среды)
Появится что-то вроде:


И далее можно искать и устанавливать приложения. Просто выделяете мышкой программу, жмёте правой кнопкой мыши и выбираете "Отметить для установки" или "Отметить для удаления". Помните, что если нужно удалить пакет полностью, с конфигурационными файлами, следует "Отметить для полного удаления".


Ставим необходимые приложения

Хотели рабочую станцию? Мы её почти получили: у нас есть графический сервер и графическая оболочка/среда, и осталось наполнить её приложениями. Основные программы, который вам потребуются для комфортной работы, перечислены в этом посте.

Полезно побродить по списку пакетов,посмотреть на то, сколько и чего вам положили в дистрибутив. Любую программу в репозитории можно легко и просто установить - либо прямым вводом команд в консоли, либо через графическую оболочку.

22 комментариев:

DimkaS комментирует...

"редактируем файл /etc/sudoers при помощи MC или командой nano /etc/sudoers"

Вот это не очень хорошая идея - даже в самом файле написано: "# This file MUST be edited with the 'visudo' command as root."

Понятно, что в данном случае ошибиться трудно, но лучше быть осторожным заранее.

virens комментирует...

Вот это не очень хорошая идея - даже в самом файле написано: "# This file MUST be edited with the 'visudo' command as root."
Да, я в курсе; просто не хочется лишний раз усложнять.

Понятно, что в данном случае ошибиться трудно, но лучше быть осторожным заранее.
Это несколько удлинняет схему, но в общем разумно.

Алексей комментирует...

У меня вопрос из разряда «интересна логика автора»: почему для установки используется apt-get, а для удаления aptitude? При наличии apt-get remove и aptitude install.

Давно не ставил чистый Debian, но недавно на одном популярном VDS столкнулся с тем, что aptitude в базовом теплейте Debian Etch не нашлось.

Dandr78 комментирует...

*У меня вопрос из разряда «интересна логика автора»: почему*
А где ты видишь apt-get для установки?

Tigro комментирует...

А про apt-file что не написал? А то приходят люди на Debian после Fedora подобных и кроют APT нехорошими словами за невозможность поискать по содержимому пакета.

А про visudo это вообще говоря правильно. Так как если ты нагородил черт знает что в sudoers, то тебя просто так не выпустят из редактирования. И ещё когда мы никого не боимся (а такое бывает нужно), то можно вгрохать вот такую команду:

ВАШЛОГИН ALL=(ALL) NOPASSWD: ALL

И тогда пароль спрашивать у нас уже не будут.

andrey i. mavlyanov комментирует...

>>Вот это не очень хорошая идея - даже в самом файле написано: "# This file MUST be edited with the 'visudo' command as root."
>Да, я в курсе; просто не хочется лишний раз усложнять.


это не усложнять. если кто-то не знает вим - пусть сделает
# update-alternatives --set editor /usr/bin/nano

и радуется

h4tr3d комментирует...

Консольный способ

Тут наблюдается какая-то неконсистентность, с одно стороны apt-cache, а далее aptitude.

Возможно поменять apt-cache search на aptitude search?

Анонимный комментирует...

Очень странная ситуация в дебиане. Aptitude рекомендован к использованию (и в инсталляторе используется именно он), при этом apt-get присутствует в системе. Ещё apt-get продолжает развиваться, и в принципе умеет всё тоже самое, что и aptitude, вплоть до отслеживания orphane пакетом, но при этом с aptitude не совместим (по разному хранят данные). Synaptic использует apt-get и не поддерживает aptitude.

Разброд и шатание какое-то.

virens комментирует...

2 Алексей пишет...
Давно не ставил чистый Debian, но недавно на одном популярном VDS столкнулся с тем, что aptitude в базовом теплейте Debian Etch не нашлось.
Этого не может быть, потому что не может быть никогда :-) Он там есть. Если добрая самаритянская рука его apt-get remove не сделала :-)


2 Tigro пишет...
А про apt-file что не написал? А то приходят люди на Debian после Fedora подобных и кроют APT нехорошими словами за невозможность поискать по содержимому пакета.
Согласен, надо бы дополнить. Спасибо!


А про visudo это вообще говоря правильно. Так как если ты нагородил черт знает что в sudoers, то тебя просто так не выпустят из редактирования.
Так я ж подробно написал, чего добавить. Но вообще-то правда в этих словах есть: надо ставить sudoers. Буду править пост.

ВАШЛОГИН ALL=(ALL) NOPASSWD: ALL
Тоже дельно, хотя даёт повод для красноглазия :-)


2 h4tr3d пишет...
Тут наблюдается какая-то неконсистентность, с одно стороны apt-cache, а далее aptitude.
Я считаю, что apt-cache search выдаёт более простой и читабельный список.

Возможно поменять apt-cache search на aptitude search?
Лучше вторым вариантом.

2 Анонимный пишет...
Очень странная ситуация в дебиане. Aptitude рекомендован к использованию (и в инсталляторе используется именно он), при этом apt-get присутствует в системе.
Нормальная ситуация в Дебиане. Когда я обновлялся на Этч, мне снесло aptitude, и только apt-get я смог его поставить обратно. Вам что, apt-get мешает жить? Пусть будет, запасной парашют ещё никому не помешал.

Kirill Zabarniuk комментирует...

Кроме того установить пакет можно командой dpkg -i /путь/к_файлу/имя_файла.deb [/еще/файлы.deb]
Полезно в случаях когда пакет был собран или скачан самостоятельно, и не содержится в доступных репозиториях.
(Кстати, не является ли упомянутый выше apt-file аналогом dpkg -S имя_файла? В любом случае тоже очень полезная команда, хоть и не совсем относится к теме статьи)

Kirill Zabarniuk комментирует...

Кстати про aptitude, практически всегда запускаю его без параметров, там довольно удобный графический интерфейс (на основе ncurses). Наиболее частоиспользуемые клавиши в таком режиме:
"/" - поиск по имени пакета (при поиске поддерживаются шаблоны, описанные в http://www.opennet.ru/tips/info/1566.shtml)
"n" - перейти к следующему пакету, удовлетворяющему условиям поиска
"+" - установить пакет
"-" - удалить пакет, оставив конфиги
"_" - удалить пакет вместе с конфигами (purge).
"g" - перейти к следующему шагу работы с пакетами (установка/удаление)
"q" - возврат или выход
и многое другое :)
Кроме того, при первом запуске будет нелишним зайти (F10) в "Параметры" - "Работа с зависимостями", и снять флажок "Автоматически устанавливать рекомендуемые пакеты".

Анонимный комментирует...

Нормальная ситуация в Дебиане. Когда я обновлялся на Этч, мне снесло aptitude, и только apt-get я смог его поставить обратно. Вам что, apt-get мешает жить? Пусть будет, запасной парашют ещё никому не помешал.

Мне aptitude мешает жить. Apt-get умеет всё что нужно + гораздо удобнее аптитуды + synaptic работает. Aptitude просто лишняя сущность.

Анонимный комментирует...

# apt-cache search чего_хочу | grep чего_конкретно_хочу
Позвольте осведомиться, чем:
#aptitude search чего_хочу
#aptitude search ~nчего_хочу
#aptitude search ~dчего_хочу
не устраивают автора?

GQ комментирует...

>Apt-get умеет всё что нужно + гораздо удобнее аптитуды

Во-первых, чем же он удобнее, если aptitude умеет все что умеет apt-get и гораздо больше.
Во-вторых, aptitude гораздо умнее и удобнее в вопросе разрешения зависимостей в нетривиальных ситуациях (чего стоит только возможно на Y/n ответить "e" перейти в графический режим и руками разрешить зависимости).

Tigro комментирует...

А вот скажите мне все эти apt-get/aptitude умеют устанавливать локальный (не из репозитория) deb-пакет?

Анонимный комментирует...

>А вот скажите мне все эти apt-get/aptitude умеют устанавливать локальный (не из репозитория) deb-пакет?

А dpkg на что?

Анонимный комментирует...

А вот скажите мне все эти apt-get/aptitude умеют устанавливать локальный (не из репозитория) deb-пакет?
aptitude умеет устанавливать локальный deb пакет из локального репозитория :)

virens комментирует...

2 Анонимный пишет...

# apt-cache search чего_хочу | grep чего_конкретно_хочу
Позвольте осведомиться, чем:
#aptitude search чего_хочу
#aptitude search ~nчего_хочу
#aptitude search ~dчего_хочу
не устраивают автора?

Aptitude выдаёт, на мой взгляд, менее читабельный список, чем apt-get. А греп приучает использовать pipeline.

2 GQ пишет...
Во-вторых, aptitude гораздо умнее и удобнее в вопросе разрешения зависимостей в нетривиальных ситуациях
Кстати да. При масштабных обновлениях это особенно заметно. Apt-get легко может разрушить систему при апдейте (переход с вуди на сарж помним?). Aptitude намного лучше с этим справляется.

2 Tigro пишет...
А вот скажите мне все эти apt-get/aptitude умеют устанавливать локальный (не из репозитория) deb-пакет?
Дык это, отец, dpkg вроде никто из репозитория не выбрасывал? :-)

В ближайшее время пост постараюсь допилить в соответствии с ценными идеями комментаторов.

Tigro комментирует...

Дык это, отец, dpkg вроде никто из репозитория не выбрасывал? :-)

Уй, мадам, вы натурально не понимаете.

Суть проблемы в том, что dpkg не разрешит зависимости, а выведет кучу букв, да ещё что-нибудь разломает вдобавок. А вот сели бы сказать aptitude install foo-0.1-1.i386.deb, вот это было бы круто. И пакет бы поставился и зависимотри бы затянулись.

Вот опять YUM тут лучше...

Tigro комментирует...

В общем на мой вопрос ответом является слово gdebi.

unit комментирует...

>Во-первых, чем же он удобнее, если aptitude умеет все что умеет apt-get и гораздо больше.

А вот и не правда, например в apt-get можно сделать так
apt-get source , а aptitude такого неумеет

GANQQWERTY комментирует...

Ребята, а не можете ещё рассказать про дополнительные репозитории? Часто мучаюсь от нехватки пакетов. Есть ли какие-либо подборки? (кроме http://apt-get.org) Какие репозитории несовместимы друг с другом?