apt

Изображение пользователя ramok.

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

Tags: •  •  •  • 

Иногда при попытке использования 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

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

Tags: •  • 

Например нужно поставить 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:
господин Анонимус, еще не поздно подписаться Ж:-)

Изображение пользователя ramok.

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

Tags: •  •  •  •  •  • 

В последнее время 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 # устанавливаем что получилось

Изображение пользователя ramok.

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

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

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

Tags: •  •  •  • 

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

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

Изображение пользователя ramok.

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

Tags: •  •  •  •  • 

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

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

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

Изображение пользователя alexu.

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

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

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

Tags: •  •  •  •  •  • 

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

$ 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 цифровой подписи.

RSS-материал