<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF77%3AAutopackage</id>
		<title>LXF77:Autopackage - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF77%3AAutopackage"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF77:Autopackage&amp;action=history"/>
		<updated>2026-05-13T13:06:50Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF77:Autopackage&amp;diff=6468&amp;oldid=prev</id>
		<title>Yaleks: викификация</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF77:Autopackage&amp;diff=6468&amp;oldid=prev"/>
				<updated>2009-01-07T08:57:50Z</updated>
		
		<summary type="html">&lt;p&gt;викификация&lt;/p&gt;
&lt;a href=&quot;http://wiki.linuxformat.ru/wiki/index.php?title=LXF77:Autopackage&amp;amp;diff=6468&amp;amp;oldid=6467&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF77:Autopackage&amp;diff=6467&amp;oldid=prev</id>
		<title>Yaleks: Новая: == Autopackage Создаем пакет == ''Если вы сумеете постичь сложный процесс создания файлов Autopackage, линуксоиды в...</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF77:Autopackage&amp;diff=6467&amp;oldid=prev"/>
				<updated>2009-01-07T08:56:57Z</updated>
		
		<summary type="html">&lt;p&gt;Новая: == Autopackage Создаем пакет == &amp;#039;&amp;#039;Если вы сумеете постичь сложный процесс создания файлов Autopackage, линуксоиды в...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Autopackage Создаем пакет ==&lt;br /&gt;
''Если вы сумеете постичь сложный процесс создания файлов Autopackage, линуксоиды всего мира будут вам благодарны. '''Грэм Моррисон''' покажет, как это делается.''&lt;br /&gt;
&lt;br /&gt;
Linux остро нуждается в более простом способе установки&lt;br /&gt;
программ. Новички часто бывают обескуражены, когда вместо установки программы щелчком мыши по setup.exe им&lt;br /&gt;
приходится брести по тернистой дистрибутиво-зависимой тропе установки пакетов, на ходу обучаясь работе с пакетными менеджерами,&lt;br /&gt;
RPM и DEB-файлами и разбираясь с адской кухней зависимостей.&lt;br /&gt;
Безусловно, это одна из главных причин, почему начинающие пользователи теряют мужество и возвращаются в Windows. Да и Linux-ветеранов раздражает, что очередную новинку нельзя по-быстрому установить и поглядеть без отслеживания дюжины зависимостей.&lt;br /&gt;
&lt;br /&gt;
Текущая ситуация – это неустойчивое равновесие. В каждом дистрибутиве поддерживаются свои пакеты, которые исправляются и обновляются. Пользователи вынуждены переходить на новые версии дистрибутивов, если им нужны новые пакеты, либо искать альтернативы. Чаще&lt;br /&gt;
всего такой альтернативой является самостоятельная сборка пакета из&lt;br /&gt;
исходных текстов, но не у всех пользователей есть на это время.&lt;br /&gt;
&lt;br /&gt;
Autopackage пытается внести порядок в этот хаос, посулив предоставить Linux альтернативу setup.exe, то есть пре-компилированные&lt;br /&gt;
бинарные пакеты и автоматическое разрешение зависимостей.&lt;br /&gt;
Autopackage ориентирован на совместимость с максимально большим&lt;br /&gt;
числом дистрибутивов, причем установка везде проходит одинаково.&lt;br /&gt;
Если вы предусмотрели Autopackage-файл для программы, вы можете&lt;br /&gt;
быть уверены, что люди смогут установить ее легким движением руки&lt;br /&gt;
независимо от используемого дистрибутива.&lt;br /&gt;
&lt;br /&gt;
=== Работа для умелых рук… ===&lt;br /&gt;
Расплатой за легкость установки программы из Autopackage является&lt;br /&gt;
довольно сложный процесс создания такого пакета. Пусть не вы писали&lt;br /&gt;
программу, но, создав файл Autopackage, вы можете существенно&lt;br /&gt;
облегчить жизнь ее пользователям и разработчику. Здесь не обойтись&lt;br /&gt;
без хорошего знания Linux, включая версии установленных у вас библиотек и зависимостей выбранной вами программы. Да еще неплохо бы&lt;br /&gt;
уметь программировать, поскольку исходный код программы скорее&lt;br /&gt;
всего придется подправить для уменьшения числа зависимостей, замены опций компилятора или улучшения совместимости с различными&lt;br /&gt;
версиями библиотек. Другого пути нет, в любом случае вы должны уверенно чувствовать себя в Linux. Фактически, Autopackage позволяет&lt;br /&gt;
Linux-хакерам совершенствовать мастерство.&lt;br /&gt;
&lt;br /&gt;
В процессе урока я шаг за шагом покажу вам на реальном примере,&lt;br /&gt;
как создавать Autopackage-файл (далее Автопакет). Для этой цели я&lt;br /&gt;
выбрал программу Kalbum, каталогизатор фотографий – слегка облегчив вам задачу, поскольку у Kalbum сравнительно мало зависимостей.&lt;br /&gt;
Чем больше зависимостей, тем сложнее задача, и тем больше знаний&lt;br /&gt;
требуется для ее решения.&lt;br /&gt;
&lt;br /&gt;
Разобьем процесс создания автопакета на несколько шагов. Во-первых, нужно убедиться, что приложение в состоянии запускаться из&lt;br /&gt;
любого каталога на жестком диске, иначе с ним не смогут работать те, у&lt;br /&gt;
кого нет прав суперпользователя. Затем, с помощью опций сборки мы&lt;br /&gt;
сократим зависимости, насколько возможно, после чего создадим spec-файл для завершения построения автопакета.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать, установите утилиты разработки Autopackage&lt;br /&gt;
(http://autopackage.org/download-tools.html).&lt;br /&gt;
&lt;br /&gt;
В данном уроке я использую версию Kalbum 1.0, ее можно взять с&lt;br /&gt;
диска к LXF72 или с http://www.paldandy.com/kalbum.&lt;br /&gt;
&lt;br /&gt;
=== ШАГ 1 – СДЕЛАТЬ ПРИЛОЖЕНИЕ ПЕРЕМЕЩАЕМЫМ ===&lt;br /&gt;
Для максимальной гибкости нужно сделать приложение&lt;br /&gt;
перемещаемым. То есть программа обязана запускаться в любом случае,&lt;br /&gt;
независимо от того, где она установлена. Тогда пользователи, не имеющие root-доступа к рабочей машине, смогут установить ее в свою домашнюю директорию. Но как узнать, насколько перемещаемо приложение?&lt;br /&gt;
&lt;br /&gt;
Только путем чтения исходного кода. Как раз в нем разработчики&lt;br /&gt;
указывают, требует ли программа прав суперпользователя (кстати,&lt;br /&gt;
имейте это в виду, если затеете писать собственное приложение).&lt;br /&gt;
Разработчики Autopackage специально создали утилиту BinReloc,&lt;br /&gt;
чтобы хоть немного упростить мучительный процесс перемещения&lt;br /&gt;
программы. Утилита статически компонуется с вашим приложением и&lt;br /&gt;
зависит только от libc.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img 77 89 1.png|thumb|В API KDE предусмотрен стандартный класс для поиска файла.]]&lt;br /&gt;
Преимущество KDE-приложений вроде Kalbum – наличие класса&lt;br /&gt;
KStandardDirs, он выполняет ту же функцию, что и BinReloc: доступ к&lt;br /&gt;
стандартным системным каталогам изнутри вашей программы. Так что&lt;br /&gt;
править исходный код в данном случае нам не придется, и можно переходить к следующему шагу. (Отметим, что разработчики Autopackage&lt;br /&gt;
надеются в будущем сделать сборку перемещаемых пакетов почти автоматической). Давайте посмотрим, как класс KStandardDirs используется&lt;br /&gt;
в Kalbum (файл photodetails.cpp):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp-qt&amp;quot;&amp;gt;QString dir;&lt;br /&gt;
KGlobal::dirs()-&amp;gt;addResourceType(&amp;quot;kalbum_data&amp;quot;, KGlobal::dirs()-&amp;gt;kde_default(&amp;quot;data&amp;quot;) + &amp;quot;kalbum/data/&amp;quot;);&lt;br /&gt;
dir = KGlobal::dirs()-&amp;gt;findResourceDir(&amp;quot;kalbum_data&amp;quot;, &amp;quot;slides/slides.png&amp;quot;);&amp;lt;/source&amp;gt;&lt;br /&gt;
Этот кусок кода использует метод addResourceType класса&lt;br /&gt;
KStandardDirs (типа ‘данные’, в отличие от, например, иконок), определяет директорию, а директория затем присваивается строке (dir), вместе&lt;br /&gt;
с вложенной директорией и именем файла, который мы будем в ней&lt;br /&gt;
искать. Строка укажет slides.png, расположена программа в домашней&lt;br /&gt;
директории пользователя или в системном каталоге, тем самым выполняя функцию BinReloc. API Autopackage также включает собственные&lt;br /&gt;
команды для определения местоположения программ в файловой системе и создания директорий, чтоб не пришлось разбираться, локальное&lt;br /&gt;
имя файла или глобальное.&lt;br /&gt;
&lt;br /&gt;
=== ШАГ 2 – СОКРАЩАЕМ ЗАВИСИМОСТИ ===&lt;br /&gt;
Благодаря удобному стандартному классу KDE нам не пришлось править код на предыдущем шаге. Надеюсь, это приободрит тех,&lt;br /&gt;
кто еще не стал гуру программирования. Теперь нам предстоит сделать&lt;br /&gt;
программу как можно более переносимой. По сути, это основная причина создания автопакета.&lt;br /&gt;
&lt;br /&gt;
Главное препятствие к созданию повсеместно приемлемого пакета – огромное число зависимостей. Мы должны определить, какие из&lt;br /&gt;
них действительно необходимы, а какие вполне можно отбросить. И&lt;br /&gt;
это проблема с тройным дном. Любой разработчик прежде всего&lt;br /&gt;
попытается найти и использовать стандартную библиотечную функцию, а не изобретать велосипед. Если программа использует всеобъемлющие API вроде GTK или KDE/Qt, то небольшой проект практически всегда обойдется функциями этих библиотек. Однако есть разработчики, предпочитающие выуживать библиотеки из самых потаенных омутов мира Open Source. Вот тут и начинаются проблемы с&lt;br /&gt;
зависимостями.&lt;br /&gt;
&lt;br /&gt;
Дело в том, что пользователю понадобятся не просто копии библиотек, а именно те версии, которые были у разработчика. Проблема&lt;br /&gt;
усугубляется тем, что многие сборщики пакетов имеют привычку&lt;br /&gt;
модифицировать библиотеки, накладывая на них патчи. В результате&lt;br /&gt;
получается «ад зависимостей», сгубивший немало некогда добротных систем Linux.&lt;br /&gt;
&lt;br /&gt;
Здесь нет простого решения. Если вы пишете программу и хотите,&lt;br /&gt;
чтобы она была максимально переносимой, используйте поменьше сторонних библиотек, а те, что используете, подбирайте посвежее.&lt;br /&gt;
Отсутствие старушки foobarlib 1997 года выпуска облегчит жизнь не&lt;br /&gt;
только вам, но и создателю автопакета.&lt;br /&gt;
&lt;br /&gt;
==== Внутреннее расследование ====&lt;br /&gt;
Хороший способ узнать, сколько библиотек тянется за программой –&lt;br /&gt;
вызвать утилиту ldd. Сконфигурировав и построив пакет Kalbum, зайдите в каталог, где находится его исполняемый файл и введите&lt;br /&gt;
команду: ldd kalbum. Вы увидите список из 38 библиотек, начинающийся так:&lt;br /&gt;
&amp;lt;pre&amp;gt;linux-gate.so.1 =&amp;gt; (0xffffe000)&lt;br /&gt;
libresolv.so.2 =&amp;gt; /lib/libresolv.so.2 (0x4003c000)&lt;br /&gt;
libkio.so.4 =&amp;gt; /opt/kde3/lib/libkio.so.4 (0x4004f000)&lt;br /&gt;
libkdeui.so.4 =&amp;gt; /opt/kde3/lib/libkdeui.so.4 (0x4038c000)&lt;br /&gt;
libkwalletclient.so.1 =&amp;gt; /opt/kde3/lib/libkwalletclient.so.1 (0x4067a000)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Легко понять, почему для KDE-программы требуются библиотеки&lt;br /&gt;
libkio и libkdeui, но что такое, например, linux-gate.so.1? Если бы мы&lt;br /&gt;
строили RPM из этого пакета как такового, RPM затребовал бы данную&lt;br /&gt;
библиотеку, а менеджер пакетов попытался бы ее установить, что вовлекло бы новые зависимости, и так далее. Но на самом деле linuxgate&lt;br /&gt;
– экзотический случай: на нее ссылается вывод ldd, причем путь в&lt;br /&gt;
ссылке не указан. И неудивительно: это не библиотека, а виртуальный&lt;br /&gt;
динамический объект, используемый ядром для ускорения системных&lt;br /&gt;
вызовов. Осталось убедиться, что libkwalletclient здесь лишняя, так как&lt;br /&gt;
Kalbum не использует Wallet Manager, для связи с которым она и&lt;br /&gt;
нужна.&lt;br /&gt;
&lt;br /&gt;
Более подробную информацию по требуемым библиотекам можно&lt;br /&gt;
добыть с помощью objdump. Команда objdump -u kalbum также&lt;br /&gt;
выведет список библиотек, используемых программой. Библиотеки,&lt;br /&gt;
расположенные в начале списка под заголовком Dynamic Section, помечены как ‘NEEDED’ (необходимые). Вас может огорчить тот факт, что&lt;br /&gt;
список библиотек, выводимый objdump, не короче вывода ldd. Но ldd&lt;br /&gt;
предусматривает еще один трюк: выводить названия библиотек, объявленных необходимыми, но никогда не использующихся:&lt;br /&gt;
&amp;lt;pre&amp;gt;ldd -u kalbum&lt;br /&gt;
Unused direct dependencies:&lt;br /&gt;
/lib/libresolv.so.2&lt;br /&gt;
/opt/kde3/lib/libkdesu.so.4&lt;br /&gt;
/opt/kde3/lib/libkwalletclient.so.1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Посмотрите на вывод – и увидите, что сюда попала и&lt;br /&gt;
libkwalletclient. Итак, из 36 библиотек 31 не используется. Вопрос: как&lt;br /&gt;
вычистить эти зависимости из программы? Разработчики Autopackage&lt;br /&gt;
позаботились об этом и создали несколько Perl-скриптов для этой&lt;br /&gt;
цели. Скрипты имеют общее имя apbuild и являются обертками для&lt;br /&gt;
компилятора: они просто фильтруют ненужные зависимости перед тем,&lt;br /&gt;
как пропустить необходимые.&lt;br /&gt;
&lt;br /&gt;
Для компиляции Kalbum с использованием apbuild выполните&lt;br /&gt;
make CC=apgcc CXX=apg++ из главной директории приложения.&lt;br /&gt;
Компилятор переадресуется на скрипты, а они попытаются минимизировать зависимости. Эффект от apbuild проявляется немедленно: список стал гораздо короче. По завершении компиляции проверьте получившийся файл командой objdump –u kalbum. Список используемых&lt;br /&gt;
библиотек сократился с 36 до 9 – для KDE это мизер, и шансы создать&lt;br /&gt;
переносимое приложение заметно повысились. С оставшимися зависимостями мы рассчитаемся на следующем шаге.&lt;br /&gt;
&lt;br /&gt;
=== ШАГ 3 – СОБИРАЕМ АВТОПАКЕТ ===&lt;br /&gt;
Радуйтесь: самое сложное позади. Все, что осталось сделать – создать небольшой текстовый файл, описывающий каждый&lt;br /&gt;
компонент вашего пакета, с тем, чтобы Autopackage сумел собрать его в&lt;br /&gt;
один инсталлируемый файл (к счастью, этот процесс в основном автоматизирован утилитой makeinstaller). Текстовый файл создается так,&lt;br /&gt;
чтобы makeinstaller знал, что делать, и называется он spec-файлом.&lt;br /&gt;
Если вы когда-либо собирали RPM-пакеты, вам известно, что они тоже&lt;br /&gt;
используют файлы похожего формата. И фактически, и по названию&lt;br /&gt;
это спецификация, включающая описание программы и перечень устанавливаемых файлов. Для автоматизации некоторых рутинных операций обычно используются скрипты, но кто-то, разбирающийся в приложении, должен отредактировать спецификацию вручную.&lt;br /&gt;
&lt;br /&gt;
==== Метаданные ====&lt;br /&gt;
Первым делом изготовим спецификацию при помощи makeinstaller.&lt;br /&gt;
Создайте в главном каталоге программы поддиректорию&lt;br /&gt;
autopackage, именно в ней Autopackage будет искать spec-файл.&lt;br /&gt;
Введите следующую команду для создания шаблона:&lt;br /&gt;
 makeinstaller --mkspec &amp;gt;autopackage/default.apspec.in&lt;br /&gt;
Если вы откроете сгенерированый файл (autopackage/default.apspec.in), то обнаружите, что он состоит из разделов. Первый называется Meta и содержит описание программы, а также номер версии,&lt;br /&gt;
чтобы Autopackage мог учесть его при обновлении. Назначение большинства параметров очевидно: легко догадаться, для чего нужны&lt;br /&gt;
‘DisplayName’, ‘Maintainer’ и ‘Description’. ‘ShortName’ – сокращенное&lt;br /&gt;
имя версии строчными буквами. Единственный параметр, способный&lt;br /&gt;
вызвать затруднение – ‘RootName’. Это уникальный идентификатор&lt;br /&gt;
вашего автопакета, он начинается с @, затем следует домен, имя приложения и номер версии. Домен – не обязательно реальное имя, а&lt;br /&gt;
просто символьный идентификатор: в нем требуется наличие хотя бы&lt;br /&gt;
одного прямого слэша (но не в конце), а префиксы – ни www, ни протокол – не нужны. Номер версии – переменная, которую вставляет сам&lt;br /&gt;
Autopackage ($SOFTWAREVERSION), так что ее можно оставить в покое.&lt;br /&gt;
Для Kalbum этот параметр выглядит следующим образом:&lt;br /&gt;
 @paldandy.com/kalbum:$SOFTWAREVERSION&lt;br /&gt;
Последний трудный параметр, AutoPackageTarget, указывает версию&lt;br /&gt;
Autopackage, необходимую для установки этого пакета. Мы используем&lt;br /&gt;
версию 1.0, так и запишем (1.0).&lt;br /&gt;
&lt;br /&gt;
Закончив править этот раздел, можете смело пропускать два следующих, BuildPrepare и BuildUnprepare. Они уже были сконфигурированы автоматически при создании шаблона. Это касается и раздела&lt;br /&gt;
import, описывающего дополнительные файлы, которые нужно включить в пакет. После сборки, по умолчанию Autopackage проверяет каждый файл; если обнаружатся лишние файлы, их можно просто удалить.&lt;br /&gt;
&lt;br /&gt;
==== Подготовка к запуску ====&lt;br /&gt;
Следующий раздел спецификации – самый важный. Он называется&lt;br /&gt;
Prepare (Подготовка), и именно в нем перечисляются все зависимости&lt;br /&gt;
программы. Autopackage предоставляет механизм установки большинства распространенных зависимостей, таких как KDE, Gnome, SDL, Perl,&lt;br /&gt;
используя скелет-файлы. Они находятся в установочной директории&lt;br /&gt;
Autopackage (обычно /usr/share/autopackage/skeletons), и на них&lt;br /&gt;
есть ссылка в спецификации, на базе описания имени домена, использованного как RootName автопакета.&lt;br /&gt;
&lt;br /&gt;
При помощи списка зависимостей, составленного на предыдущем&lt;br /&gt;
шаге, следует добавить запись о каждой библиотеке. Например, ваше&lt;br /&gt;
приложение требует libpng, и в директории skeleton вы найдете скелет-файл, который (большинство из них этим и ограничивается) проверит наличие версии с требуемым номером. Если для нужной библиотеки скелет-файла найти не удалось, придется создать его самостоятельно, используя в качестве шаблона другие скелет-файлы.&lt;br /&gt;
&lt;br /&gt;
Итак, после сборки Kalbum с помощью apbuild, у нас есть девять&lt;br /&gt;
зависимостей: libkio, libkdeui, libkdecore, libkdefx, libqt-mt, libXext, libX1&lt;br /&gt;
libstdc++ и libc. К счастью, все они поддерживаются Autopackage.&lt;br /&gt;
*  Библиотеки libk* устанавливаются вместе с KDE, так что в раздел Prepare нужно добавить такую строку: ‘requireAtLeastVersion @kde.org/kdelibs 3.0’. 3.0 – самая ранняя версия KDE; для перестраховки можно указать номер поновее.&lt;br /&gt;
* Libqt требуется для KDE всегда, так что можно о ней не беспокоиться.&lt;br /&gt;
* Остальные четыре библиотеки есть в любом дистрибутиве Linux, тут тоже волноваться не о чем.&lt;br /&gt;
Так легко мы отделались благодаря сокращению числа библиотек&lt;br /&gt;
до минимума на предыдущем шаге. Теперь раздел Prepare должна&lt;br /&gt;
выглядеть следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;[Prepare]&lt;br /&gt;
# Dependency checking&lt;br /&gt;
require @kde.org/kdelibs 3.0&amp;lt;/source&amp;gt;&lt;br /&gt;
Следующий раздел называется Install. Здесь находятся несколько&lt;br /&gt;
скриптов-макросов, которые устанавливают различные части вашего&lt;br /&gt;
пакета. Например, installExe устанавливает исполняемый файл, а&lt;br /&gt;
installData – требуемые программе файлы данных. InstallDesktop создает иконку на рабочем столе, а InstallMan – обеспечивает документацию.&lt;br /&gt;
Исполняемых файлов у Kalbum только один, зато множество файлов с&lt;br /&gt;
данными; секция Install для него выглядит так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;prefix='kde-config --prefix'&lt;br /&gt;
installExe bin/*&lt;br /&gt;
installData share/apps/&lt;br /&gt;
installDesktop «Accessories» share/applications/kde/kalbum.desktop&amp;lt;/source&amp;gt;&lt;br /&gt;
Директории назначения самые обычные, как у других приложений.&lt;br /&gt;
KDE-приложения требуют специального префикса для нормальной&lt;br /&gt;
работы, который и добавляется в самом начале.&lt;br /&gt;
&lt;br /&gt;
Итак, осталось только собрать сам автопакет. Поможет та же утилита makeinstaller, только теперь она используется немного по-другому:&lt;br /&gt;
 makeinstaller autopackage/default.apspec.in&lt;br /&gt;
 Building installer for kalbum...&lt;br /&gt;
Вот и все! В результате мы получим shell-скрипт с расширением.&lt;br /&gt;
autopackage. Для установки программы нужно запустить его. Это и есть&lt;br /&gt;
файл, которым вы должны сопроводить свое приложение. Дайте нам&lt;br /&gt;
знать, как вы справились с этим заданием, если начнете делать свои&lt;br /&gt;
автопакеты.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=КАК УДАЛИТЬ АВТОПАКЕТ&lt;br /&gt;
|Содержание=[[Изображение:Img 77 91 2.png|thumb|Если вы не любите командные строки, автопакеты можно удалять через привычный графический интерфейс.]]&lt;br /&gt;
Простая установка – это, конечно, хорошо, но как&lt;br /&gt;
потом избавиться от автопакета? Есть два пути.&lt;br /&gt;
Во-первых, существует маленькая утилита, весьма&lt;br /&gt;
похожая на диалог установки/удаления программ в&lt;br /&gt;
Windows: просто наберите команду&lt;br /&gt;
autopackagemanager. Она предоставляет&lt;br /&gt;
интерфейсы для Gtk и Qt. Во-вторых, существует&lt;br /&gt;
командная утилита package, предлагающая&lt;br /&gt;
несколько опций для управления автопакетами.&lt;br /&gt;
Например, для удаления Kalbum введите команду&lt;br /&gt;
package remove Kalbum, а чтобы убедиться в&lt;br /&gt;
правильности установки, замените remove на verify.&lt;br /&gt;
Узнать больше о команде package вы можете в&lt;br /&gt;
man- и info-документации.&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Hardcore Linux]]&lt;br /&gt;
[[Категория:Грэм Моррисон]]&lt;/div&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	</feed>