apt


angel2s2 аватар

Скрипт для поиска репозитория на launchpad.net

Мне, как и многим линуксоидам предпочитающим Debian-подобные дистрибутивы, периодически приходится искать репозитории той или иной софтины в самом большом архиве персональных репозиториев. Для этого я обычно ходил на страницу https://launchpad.net/ubuntu/+ppas либо пользовался утилитой ppasearch. Первый вариант просто надоел, а второй мне не удобен, потому-что не дает ссылку на страницу репозитория. Просто я предпочитаю хранить все репозитории в одном файле, а не разбрасывать их по разным файлам в каталоге /etc/apt/sources.list.d/. В то же время в результатах поиска я хочу видеть только ссылку на страницу репозитория, а его название и описание для меня имеет второстепенную важность.

Вот и решил накидать меленький скриптек:

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)
ia аватар

Интерактивная apt-оболочка

Бывает так, что длительная работа с apt из терминала немного надоедает и начинает утомлять ввод длинных последовательностей семейства команд apt-*. Однако существует утилита aptsh, которая запускает в терминале интерактивную оболочку для работы с apt. Данная утилита входит в репозитарии многих debian-based дистрибутивов.
Чтобы после установки запустить оболочку, выполните:

$ sudo aptsh

После запуска будет выведено приглашение:

>

Далее можно работать с командами apt, но без необходимости вводить перед ними apt-*. Например, для получения информации о пакете, достаточно выполнить:

> search aptsh

Или, например, чтобы получить исходный код пакета, выполните:

> source aptsh

Выйти из сеанса в shell-оболочку можно командой exit или quit:

> exit

За дополнительной информацией просьба обращаться к соответствующей man-странице.

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)
ramok аватар

Кто занял apt базу?

Иногда при попытке использования apt случается такое:

ramok ~/ sudo apt-get update
E: Не могу получить доступ к файлу блокировки /var/lib/apt/lists/lock - open (11 Ресурс временно недоступен)
E: Невозможно заблокировать каталог со списками пакетов

Это обозначает что где то есть процесс который закрыл базу apt для использования. Это могло произойти в случае сбоя программы, которая закрыла базу и забыла ее открыть, или когда где то среди десятков открытых терминалов затерялось окно в котором запущена такая программа.

Посмотрим PID процесса занявший базу apt по лок-файлу

ramok [100]~/ sudo fuser /var/lib/apt/lists/lock
/var/lib/apt/lists/lock: 22069

Если есть желание, то можно посмотреть что за программа залочила базу apt

ramok ~/ ps aux | grep 22069
root     22069  2.3  2.2  28704 22792 pts/27   S+   11:22   0:01 apt-get upgrade

Убиваем процесс который занял базу:

ramok ~/ sudo fuser -k -TERM /var/lib/apt/lists/lock
/var/lib/apt/lists/lock: 22069
ramok ~/

или не мудрствуя лукаво

ramok ~/ sudo kill -TERM 22069
0
Ваша оценка: Ничего

Установка пакетов debian из другого дистрибутива

Например нужно поставить micq из репозитория для Ubuntu.

1. Нужно добавить строчку о нужном релизе в sources.list
В нашем случае смотрим на http://www.micq.org/download.shtml.en нужную строчку

deb http://www.micq.org/deb/ feisty main

2. Обновить список

$ apt-get update

3. Установка из конкретного релиза, или конкретную версию пакета

$ apt-get install ИМЯ_ПАКЕТА/<release> #установить пакет
# Альтернативный вариант
$ apt-get install -t <release> ИМЯ_ПАКЕТА
# установить пакет конкретной версии
$ apt-get install ИМЯ_ПАКЕТА=ВЕРСИЯ

В нашем конкретном примере

$ apt-get install micq/feisty
# или
$ apt-get install micq=0.5.4.2

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

UPD:
господин Анонимус, еще не поздно подписаться Ж:-)

0
Ваша оценка: Ничего
ramok аватар

Как собирать .deb climm в Debian

В последнее время climm бурно развивается, и в каждом релизе добавляется что нибудь вкусненькое (например постепенно улучшается поддержка jabber). К сожалению сам автор предоставляет .deb только для Ubuntu. Но это не беда, можно собирать пакет из deb-src под свою систему Ж:-)
Так же радует что все необходимые настройки для сборки .deb есть в главном репозитории climm.



Первый вариант сборки: релиз из репозитория

Добавляем в /etc/apt/source.list репозиторий в который выкладывается deb-src каждого релиза:

deb-src http://www.climm.org/deb/ sid main
$ sudo apt-get update                     # обновим базы
$ apt-get source climm                    # установим исходники из deb-src
$ sudo apt-get build-dep climm            # устанавливаем пакеты которые
                                                 # необходимы для постройки
$ cd climm
$ dpkg-buildpackage -rfakeroot            # делаем .deb
$ sudo dpkg -i ../climm_0.6.1-0_i386.deb # устанавливаем что получилось

Примечание: К сожалению этот процесс нельзя автоматизировать с помощью apt-build изза ошибки в нем.



Второй вариант сборки: trunk из репозитория

Примерно тоже самое что первый вариан, то понадобится установленные в системе autoconf и automake. И нужно будет самостоятельно поставить необходимые для сборки пакеты.

$ svn co http://svn.climm.org/climm/
$ cd climm

или обновить уже существующий транк

$ cd climm
$ svn update

собираем пакет

$ ./prepare                              # запускаем autoconf
$ dpkg-buildpackage -rfakeroot           # делаем .deb
$ sudo dpkg -i ../climm_0.6.1-0_i386.deb # устанавливаем что получилось

Примечание: К сожалению этот процесс нельзя автоматизировать с помощью svn-buildpackage так как автор не хочет вносить в debian/rules код для автоматического запуска ./prepare



Вариант для разработчиков

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

$ DEB_BUILD_OPTIONS=nostrip WIP=1 dpkg-buildpackage -rfakeroot -m"ramok <ramok@core.org.ua>"
$ sudo dpkg -i ../climm_0.6.1-0_i386.deb # устанавливаем что получилось
0
Ваша оценка: Ничего
ramok аватар

Из какого пакета файл?

Иногда известен какой нибудь файл, и хочется узнать из какого он пакета. Здесь будет рассказано как это можно узнать в различных OS и мененжерах пакетов(deb, apt,rpm, Gentoo, FreeBSD, OpenBSD): ...

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)
ramok аватар

Просмотр списка изменений в пакетах при апдейте в Debian

При апдейте через apt удобно просматривать что же собственно изменилось в пакетах.

Для этого предназначен пакет apt-listchanges который читает ChangeLog новых пакетов и показывает у добном виде

0
Ваша оценка: Ничего
ramok аватар

Как создать собственный deb репозитарий

иногда небходимо сбросить диск с Debian(ubunto) и отдать его товарищу Ж:-)
но хочется так же использовать apt-get для установки пакетов из переписанных на диск пакетов.
для этого необходимо создать свой локальный репозиторий. как это сделано описано тут

http://www.debian.org/doc/manuals/repository-howto/repository-howto.en.html

это не сложно Ж:-)

0
Ваша оценка: Ничего
alexu аватар

Как избежать апгрейда пакета в Debian

Допустим, в Debian или Ubuntu (и всех остальных дистрах, использующих apt) у вас имеется установленный пакет, который Вы не хотите обновлять. Например, его новые версии выходят слишком часто и на их скачку кушается много трафика, или Вы его как-то сами модифицировали, или по какой-либо другой причине Вас устраивает его конкретная версия. Ниже описывается два способа - с использованием aptitude и apt-pinning.
Допустим, в Debian или Ubuntu (и всех остальных дистрах, использующих apt) у вас имеется установленный пакет, который Вы не хотите обновлять. Например, его новые версии выходят слишком часто и на их скачку кушается много трафика, или Вы его как-то сами модифицировали, или по какой-либо другой причине Вас устраивает его конкретная версия. Ниже описываются два способа, с использованием aptitude и apt-pinning

0
Ваша оценка: Ничего
ramok аватар

apt-get и цифровая подпись (GPG Error)

Однажды запустив

$ sudo apt-get update

вы вдруг получаете что то типа

....
Чтение списков пакетов... Готово
W: GPG error: http://security.debian.org stable/updates Release: Следующие подписи
  не могут быть проверены, так как недоступен общий ключ: NO_PUBKEY 010908312D230C5F
W: GPG error: http://ftp.debian.org testing Release: Следующие подписи не могут быть
  проверены, так как недоступен общий ключ: NO_PUBKEY 010908312D230C5F

Это просто означает что ваш apt обновился до версии, где научился проверять целосность пакетов посредством pgp цифровой подписи.

1) Если вам все равно настоящие пакеты из репозитория или кто то подменил их, то можно отказатся от этой возможности:

$ sudo apt-get --allow-unauthenticated update

или добавить /etc/apt/apt.conf

APT::Get::AllowUnauthenticated "true";

2) Если идти совсем debian-way то необходимо установить
 

0
Ваша оценка: Ничего