Re: Использование менеджеров пакетов Debian
Добавлено: 16.09.2013 16:31
Форум для пользователей UNIX-подобных систем
https://unixforum.org/
Код: Выделить всё
iskatel@gate:/srv/adminfiles$ equivs-build --arch i386 etersoft-bung
dpkg-architecture: предупреждение: указанный GNU тип системы i486-linux-gnu не совпадает с gcc типом системы x86_64-linux-gnu, попробуйте задать правильное значение в переменной окружения CC
dh_testdir
dh_testroot
dh_prep
sh: 1: cannot open package: No such file
sh: 1: defaults: not found
dh_prep: rm -f debian/<package name; defaults to equivs-dummy>.*.debhelper returned exit code 127
make: *** [install] Ошибка 25
Error in the build process: exit status 2
Код: Выделить всё
iskatel@gate:/srv/adminfiles$ sudo dpkg --install etersoft-bung_1.0_i386.deb
Выбор ранее не выбранного пакета etersoft-bung.
(Чтение базы данных … на данный момент установлено 61717 файлов и каталогов.)
Распаковывается пакет etersoft-bung (из файла etersoft-bung_1.0_i386.deb) …
Настраивается пакет etersoft-bung (1.0) …
iskatel@gate:/srv/adminfiles$ sudo dpkg --install haspd_3.3-eter5debian_i386.deb
(Чтение базы данных … на данный момент установлен 61721 файл и каталог.)
Подготовка к замене пакета haspd 3.3-eter5debian (используется файл haspd_3.3-eter5debian_i386.deb) …
Распаковывается замена для пакета haspd …
dpkg: зависимости пакетов не позволяют настроить пакет haspd:
haspd зависит от libncurses5.
dpkg: ошибка при обработке параметра haspd (--install):
проблемы зависимостей — оставляем не настроенным
Обрабатываются триггеры для man-db …
При обработке следующих пакетов произошли ошибки:
haspd
iskatel@gate:/srv/adminfiles$ sudo dpkg --install haspd-modules_3.3-eter5debian_i386.deb
(Чтение базы данных … на данный момент установлен 61721 файл и каталог.)
Подготовка к замене пакета haspd-modules 3.3-eter5debian (используется файл haspd-modules_3.3-eter5debian_i386.deb) …
Распаковывается замена для пакета haspd-modules …
dpkg: зависимости пакетов не позволяют настроить пакет haspd-modules:
haspd-modules зависит от haspd, однако:
Пакет haspd пока не настроен.
dpkg: ошибка при обработке параметра haspd-modules (--install):
проблемы зависимостей — оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
haspd-modules
QWERTYASDF писал(а): ↑18.09.2013 15:43А как-то можно посмотреть man доступного в репозитории пакета?
Код: Выделить всё
cat /etc/apt/sources.list
Код: Выделить всё
uname -a
Код: Выделить всё
cat /etc/debian_version
Код: Выделить всё
W: Ошибка GPG: [url="http://ftp.ru.debian.org"]http://ftp.ru.debian.org[/url] stable Release: Следующие подписи неверные: BADSIG 8B48AD6246925553 Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>
W: Ошибка GPG: [url="ftp://ftp.ru.debian.org"]ftp://ftp.ru.debian.org[/url] stable Release: Неизвестная ошибка при выполнении gpgv
Код: Выделить всё
apt-get upgrade
Код: Выделить всё
apt-get dist-upgrade
По-моему там всё проще гораздо.QWERTYASDF писал(а): ↑21.06.2014 23:31-Мой локалхост берет открытый ключ этого репозитория, которым шифрует что-то неизвестное больше никому.
-Репозиторий расшифровывает посылку своим закрытым ключом и отсылает назад.
-Локалхост проверяет ответ и в случае совпадения считает репозиторий подлинным.
Это так?
Это где как. В Slackware, к примеру, открытый ключ можно стянуть прямо с официального сайта.QWERTYASDF писал(а): ↑21.06.2014 23:31Какие есть варианты реализации получения открытых ключей? Как понимаю - получение с помощью соответствующего сервера ключей, либо установка специального пакета с архивом ключей? Есть какие стандарты или неформальные нормы для URI данных серверов? Ну например, откуда мне брать ключи для ftp://ftp.ru.debian.org/debian/ stable или deb http://manpages.ylsoftware.com/debian ?
Вот что говорит man apt-getQWERTYASDF писал(а): ↑21.06.2014 23:31На данный момент уже (или еще...) не понимаю разницы между ними, что лучше использовать?
upgrade
upgrade используется для установки новейших версий всех установленных пакетов системы из источников, указанных в /etc/apt/sources.list. Будут разысканы новейшие версии установленных в настоящий момент пакетов и произведено обновление; ни в коем случае не будет удалено ни одного установленного пакета или установлено нового пакета, не имеющего уже установленной в системе предыдущей версии. Текущие версии установленных в настоящий момент пакетов, если они не могут быть обновлены новыми версиями без изменения статуса других пакетов, будут оставлены в неизменном виде. Для того, чтобы apt-get узнал о существовании доступных новых версиях пакетов, данной команде должна предшествовать команда update.
dist-upgrade
dist-upgrade, в дополнение выполняет функцию upgrade, а также разумно управляет изменением зависимостей с новыми версиями пакетов; apt-get имеет "умную" систему разрешения конфликтов и она будет в случае необходимости пытаться произвести обновление наиболее важных пакетов за счет менее важных. Файл /etc/apt/sources.list содержит список источников для получения пакетов, из которых будут получены файлы пакетов.
Попробуйте для начала поставить свежую версию этого самого debian-keyring (может быть даже скачав его вручную), а там видно будет.
Hephaestus писал(а): ↑22.06.2014 00:08По-моему там всё проще гораздо.QWERTYASDF писал(а): ↑21.06.2014 23:31-Мой локалхост берет открытый ключ этого репозитория, которым шифрует что-то неизвестное больше никому.
-Репозиторий расшифровывает посылку своим закрытым ключом и отсылает назад.
-Локалхост проверяет ответ и в случае совпадения считает репозиторий подлинным.
Это так?
Файлы в репозитории имеют цифровые подписи (подписаны закрытым ключом). Локалхост имеет возможность проверить эту цифровую подпись (с помощью открытого ключа). Вот и всё. Ничего "неизвестного" шифровать и пересылать нет нужды.
Код: Выделить всё
D = distribution (suite (stable, ..), codename (squeeze, ..)
C = component (main, ..)
B = architecture 'binary-architecture'
S = architecture 'source'
<-- means, that file on the left contains hash or sign of file on the right.
hash is md5, sha1, sha256.
sign is sign with Debian Archive key.
+-----D/C/B/Packages <--hash-- .deb
/ +-- D/C/B/Release
/ /
D/Release.gpg <--sign-- D/Release <--hash--+--+
\ \
\ +-- D/C/S/Sources <--hash-- .dsc, .tar.gz, .diff.gz
+---- D/C/S/Release
Hephaestus писал(а): ↑22.06.2014 00:08Вот что говорит man apt-getQWERTYASDF писал(а): ↑21.06.2014 23:31На данный момент уже (или еще...) не понимаю разницы между ними, что лучше использовать?
upgrade
upgrade используется для установки новейших версий всех установленных пакетов системы из источников, указанных в /etc/apt/sources.list. Будут разысканы новейшие версии установленных в настоящий момент пакетов и произведено обновление; ни в коем случае не будет удалено ни одного установленного пакета или установлено нового пакета, не имеющего уже установленной в системе предыдущей версии. Текущие версии установленных в настоящий момент пакетов, если они не могут быть обновлены новыми версиями без изменения статуса других пакетов, будут оставлены в неизменном виде. Для того, чтобы apt-get узнал о существовании доступных новых версиях пакетов, данной команде должна предшествовать команда update.
dist-upgrade
dist-upgrade, в дополнение выполняет функцию upgrade, а также разумно управляет изменением зависимостей с новыми версиями пакетов; apt-get имеет "умную" систему разрешения конфликтов и она будет в случае необходимости пытаться произвести обновление наиболее важных пакетов за счет менее важных. Файл /etc/apt/sources.list содержит список источников для получения пакетов, из которых будут получены файлы пакетов.
Лучше, чем здесь, я всё равно не изложил бы.
ни в коем случае не будет удалено ни одного установленного пакета или установлено нового пакета, не имеющего уже установленной в системе предыдущей версии. Текущие версии установленных в настоящий момент пакетов, если они не могут быть обновлены новыми версиями без изменения статуса других пакетов, будут оставлены в неизменном виде.
The dist-upgrade command may therefore remove some packages.
Код: Выделить всё
W: Ошибка GPG: ftp://ftp.ru.debian.org stable Release: Неизвестная ошибка при выполнении gpgv
Код: Выделить всё
apt-get upgrade
Код: Выделить всё
apt-get dist-upgrade
Зачем? Просто проверяет цифровую подпись.QWERTYASDF писал(а): ↑22.06.2014 10:35Т.е.localhost открытым ключом переводит gpg-подписи в md5 etc хеши соответствующих файлов, что возможно только в случае создания первых из последних с помощью закрытого ключа?
Ну как-то так, да.QWERTYASDF писал(а): ↑22.06.2014 10:35Как понимаю, лучше сначала сделатьи уже в случае наличия ошибок можно прибегнуть кКод: Выделить всё
apt-get upgrade
?Код: Выделить всё
apt-get dist-upgrade
Подобные ситуации обнаруживаются в гугле, но я воздержусь от советов по этому поводу, дабы не ввести в заблуждение. В работу apt-get я глубоко не вникал. Быть может, более сведущие коллеги подскажут что-то конкретное.QWERTYASDF писал(а): ↑22.06.2014 10:35Поставила тот пакет с ключами, и выдается только такая ошибка:
QWERTYASDF писал(а): ↑22.06.2014 10:35Т.е.localhost открытым ключом переводит gpg-подписи в md5 etc хеши соответствующих файлов, что возможно только в случае создания первых из последних с помощью закрытого ключа?
Код: Выделить всё
$ sed -ne'1,/^$/p' Packages
Package: 0ad
Version: 0.0.16-3
Installed-Size: 9495
Maintainer: Debian Games Team <pkg-games-devel@lists.alioth.debian.org>
Architecture: i386
Depends: 0ad-data (>= 0.0.16), 0ad-data (<= 0.0.16-3), 0ad-data-common (>= 0.0.16), 0ad-data-common (<= 0.0.16-3), libboost-filesystem1.55.0, libc6 (>= 2.15), libcurl3-gnutls (>= 7.16.2), libenet7, libgcc1 (>= 1:4.1.1), libgl1-mesa-glx | libgl1, libgloox12, libicu52 (>= 52~m1-1~), libjpeg8 (>= 8c), libminiupnpc8 (>= 1.6), libmozjs-24-0, libnvtt2, libopenal1, libpng12-0 (>= 1.2.13-4), libsdl1.2debian (>= 1.2.11), libstdc++6 (>= 4.9), libvorbisfile3 (>= 1.1.2), libwxbase3.0-0 (>= 3.0.0), libwxgtk3.0-0 (>= 3.0.0), libx11-6, libxcursor1 (>> 1.1.2), libxml2 (>= 2.9.0), zlib1g (>= 1:1.2.0)
Pre-Depends: dpkg (>= 1.15.6~)
Description: Real-time strategy game of ancient warfare
Homepage: http://play0ad.com/
Description-md5: d943033bedada21853d2ae54a2578a7b
Tag: uitoolkit::sdl, uitoolkit::wxwidgets
Section: games
Priority: optional
Filename: pool/main/0/0ad/0ad_0.0.16-3_i386.deb
Size: 2714156
MD5sum: b7760ad3391e273d173540e0b5020b9d
SHA1: dd45adb6fbb742c857c549161cdb6c51fde453f7
SHA256: d37b8381c8a4d4a030016847c5956dda47e06d649476eafa595122a8
Код: Выделить всё
$ zcat Sources.gz | sed -ne'1,/^$/p'
Package: 0ad
Binary: 0ad, 0ad-dbg
Version: 0.0.16-3
Maintainer: Debian Games Team <pkg-games-devel@lists.alioth.debian.org>
Uploaders: Vincent Cheng <vcheng@debian.org>
Build-Depends: autoconf, debhelper (>= 9), dpkg-dev (>= 1.15.5), libboost-dev, libboost-filesystem-dev, libboost-signals-dev, libcurl4-gnutls-dev | libcurl4-dev, libenet-dev (>= 1.3), libgloox-dev (>= 1.0.9), libicu-dev, libjpeg-dev, libminiupnpc-dev (>= 1.6), libmozjs-24-dev, libnvtt-dev (>= 2.0.8-1+dfsg-4~), libogg-dev, libopenal-dev, libpng-dev, libsdl1.2-dev, libvorbis-dev, libwxgtk3.0-dev | libwxgtk2.8-dev, libxcursor-dev, libxml2-dev, pkg-config, zlib1g-dev
Architecture: amd64 armhf i386 kfreebsd-amd64 kfreebsd-i386
Standards-Version: 3.9.5
Format: 3.0 (quilt)
Files:
b3a3c7eafffaa584e7b258b357c8fac0 2465 0ad_0.0.16-3.dsc
3836bbcdf4edc57c2354b4fef6023146 20019680 0ad_0.0.16.orig.tar.xz
028b8b46b038a78fd5c2077fb54b30a7 93688 0ad_0.0.16-3.debian.tar.xz
Vcs-Browser: http://anonscm.debian.org/viewvc/pkg-games/packages/trunk/0ad/
Vcs-Svn: svn://anonscm.debian.org/pkg-games/packages/trunk/0ad/
Checksums-Sha1:
e3b2f4b5cb8386d9aafe2524609cc06118b8239d 2465 0ad_0.0.16-3.dsc
4931b9f6cd68ef131832eeedf8b502b54f204cce 20019680 0ad_0.0.16.orig.tar.xz
94820d5c2a8fcc01edb19a31933d0401ea51bf8e 93688 0ad_0.0.16-3.debian.tar.xz
Checksums-Sha256:
1e10c248c2ba6354ba6dc772919414958baa34f1bfe3bc056bb2f1d03f4617ec 2465 0ad_0.0.16-3.dsc
cb965ef7e292bc3a2f1f598a9695e16ff4d786398f384a1ec7d5f9bfe2626de5 20019680 0ad_0.0.16.orig.tar.xz
20b1b46d52631c6ba65017bd42a7dc9048226248fe1f5c8f4ba9df5e3895313e 93688 0ad_0.0.16-3.debian.tar.xz
Homepage: http://play0ad.com/
Package-List:
0ad deb games optional arch=amd64,armhf,i386,kfreebsd-amd64,kfreebsd-i386
0ad-dbg deb debug extra arch=amd64,armhf,i386,kfreebsd-amd64,kfreebsd-i386
Directory: pool/main/0/0ad
Priority: source
Section: games
QWERTYASDF писал(а): ↑22.06.2014 10:35Поставила тот пакет с ключами, и выдается только такая ошибка:Код: Выделить всё
W: Ошибка GPG: ftp://ftp.ru.debian.org stable Release: Неизвестная ошибка при выполнении gpgv
Код: Выделить всё
# apt-key list
QWERTYASDF писал(а): ↑22.06.2014 10:35Как понимаю, лучше сначала сделатьи уже в случае наличия ошибок можно прибегнуть кКод: Выделить всё
apt-get upgrade
?Код: Выделить всё
apt-get dist-upgrade
Не сработает. Там же apt-get update завершается с ошибкой из-за ключей,
По крайней мере раньше в руководстве по установке Debian в главе об обновлениях рекомендовали сначала делать apt-get upgrade как более безопасный (не приведет к краху системы), а затем уже apt-get dist-upgrade.
в дебиановском репозитории проверяется, что пакет не был изменен.
apt проверяет подпись файла Release (расшифровывает Release.gpg и смотрит совпадет ли расшифрованный хеш с посчитанным хешем файла Release)
Код: Выделить всё
apt-get update
Hephaestus писал(а): ↑22.06.2014 11:08Зачем? Просто проверяет цифровую подпись.QWERTYASDF писал(а): ↑22.06.2014 10:35Т.е.localhost открытым ключом переводит gpg-подписи в md5 etc хеши соответствующих файлов, что возможно только в случае создания первых из последних с помощью закрытого ключа?
Bizdelnick писал(а): ↑22.06.2014 12:53
Зря Вы намешали wheezy и stable. Используйте что-нибудь одно. Иначе, когда wheezy перестанет быть stable, начнутся проблемы.
И с testing-репозиториями надо быть аккуратнее. Вы, надеюсь, приоритет понизить для них не забыли?
Код: Выделить всё
deb http://www.deb-multimedia.org testing main non-free
QWERTYASDF писал(а): ↑22.06.2014 12:11в дебиановском репозитории проверяется, что пакет не был изменен.
Ну, насколько поняла, первичная цель - проверить, не с ложным ли репозиторием мы имеем дело (что это действительно rep.ru , а не rep.ua, прикинувшийся первым).
<..>
These two checksums allow apt to verify that it has downloaded a correct copy of the Packages file, with a checksum that matches the one in the Release file. And when it downloads an individual package, it can also check its checksum <..>
Notice that so far there is one file that apt doesn't have a way to check: The Release file. Secure apt is all about making apt verify the Release file<..>
QWERTYASDF писал(а): ↑22.06.2014 12:11Дело тут прежде всего в том, чтобы подтвердить наличие у той стороны закрытого ключа, а для этого в принципе и не обязательно сравнивать хеши файлов, составляющих структуру репозитория, можно выложить вообще md5 и md5-->gpg хеши произвольного файла, а другая сторона открытым ключом преобразует второе в первое и посчитает аутентификацию успешной. Разумеется, на самом деле реальная система не посчитает т.к. она так не настроена и помимо Release проверяются еще и остальные файлы, указанные в привиденной выше схеме. Однако, для меня интересен сам механизм аутентификации.
QWERTYASDF писал(а): ↑22.06.2014 15:09А вообще, я где-то читала, да и кажется логичным - по умолчанию же apt отдает приоритет stablе, так зачем еще дополнительно что-то придумывать с понижением приоритетов для тестируемых/нестабильных репозиториев?
Код: Выделить всё
NotAutomatic: yes
QWERTYASDF писал(а): ↑22.06.2014 15:09Если Вы мне дадите ссылочку, где почитать на русском про логику приоритетов - была б очень признательна.
Код: Выделить всё
Package: *
Pin: origin "security.debian.org"
Pin-Priority: 990
Package: *
Pin: release n=wheezy
Pin-Priority: 800
Package: *
Pin: release n=wheezy-proposed-updates
Pin-Priority: 900
Package: *
Pin: release n=wheezy/updates
Pin-Priority: 900
Package: *
Pin: release n=wheezy-backports
Pin-Priority: 700
Package: *
Pin: release n=jessie
Pin-Priority: 400
Package: *
Pin: release n=jessie-proposed-updates
Pin-Priority: 400
Package: *
Pin: release n=jessie/updates
Pin-Priority: 400
Package: *
Pin: release n=sid
Pin-Priority: 200
Package: *
Pin: release a=experimental
Pin-Priority: 100
QWERTYASDF писал(а): ↑22.06.2014 15:09А вообще, я где-то читала, да и кажется логичным - по умолчанию же apt отдает приоритет stablе, так зачем еще дополнительно что-то придумывать с понижением приоритетов для тестируемых/нестабильных репозиториев?
Bizdelnick писал(а): ↑22.06.2014 20:13Пакет однозначно идентифицируется номерами версии и релиза. Если какое-то изменение вносилось без поднятия номера версии, то поднимается номер релиза. Путаницы возникнуть не может.
QWERTYASDF писал(а): ↑22.06.2014 20:34В .deb-файле, насколько поняла, может находится только номер версии пакета и оный имеет весьма условное значение т.к. не стандартизирован.