LINUX.ORG.RU

А есть ли у apt-get'а опция для игнорирования отсутствующих пакетов из списка?

 ,


0

2

Собственно, сабж. Речь об аналоге DNF'овской опции "--setopt=strict=0".

Судя по ману, на неё похожа опция -m / --ignore-missing, однако не похоже чтобы она работала именно таким образом. Вот и на askubuntu.com рекомендуют устанавливать по одному пакету в цикле: https://askubuntu.com/questions/39497/how-to-apt-get-install-multiple-package... .

Так такая опция у apt-get'а всё-таки есть или DNF всё-таки круче apt-get'а?

★★★★★

yum и dnf всё таки круче apt-get-а, ибо я уже даже не помню, когда в RHL заменили apt-get, он там был, на yum, ну а на dnf с 20 или 21 fedora, ЕМНИП.

anonymous
()

Так такая опция у apt-get’а всё-таки есть

Похоже, нет.

или DNF всё-таки круче apt-get’а?

В этом конкретном случае — да.

Rootlexx ★★★★★
()

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

izzholtik ★★★
()
Ответ на: комментарий от PRN

Зачем ставить заведомо нерабочие пакеты?

Я подразумевал синхронизацию списка установленных пакетов между машинами. На первой машине список установленных пакетов экспортируется в скрипт, который запускается на второй машине. При этом, на первой машине доустановлены пакеты, которых нет в официальном репозитории. Их я потом руками доустанавливаю. Надо только чтобы имеющиеся в офциальном репозитории пакеты установились по списку. Т.е. чтобы пакетный менеджер не споткнулся на экспортированных в список лишних именах пакетов.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 2)
Ответ на: комментарий от izzholtik

Я подразумевал конкретно свои собственные скрипты, а не какие-то мануалы.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Стрельба из пушки по воробьям же. Тем более, что это клиент-серверный вариант. Вариант, который не требует сети, является наиболее универсальным (пакеты могут браться из локального зеркала на внешнем жёстком диске).

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от grem

Что такое «отсутствующие пакеты из списка»?

Дан список имён пакетов, ряда пакетов соответствующих именам в списке нет в репозитории. Т.е. для пакетного менеджера они «not found», т.е. отсутствующие.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от grem

Там есть rpm

Да. В т.ч. за это он мне и нравится.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от deep-purple

велосипеды

Так, разве, устанавливать пакеты по заданному списку не задача пакетного менеджера? Почему бы и не уметь ему устанавливать только имеющиеся пакеты из списка?

Суть-то всех этих apt-get'ов, yum'ов, DNF'ов и прочих zypper'ов в более высокоуровневом рулении пакетами, в т.ч. и рулении имеющимися списками имён пакетов.

А иначе бы было бы достаточно просто dpkg и rpm'а.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

Суть пакетного менеджера — разрулить зависимости, доустановив отсутствующие. Ты же хочешь нарушить его первичную суть.

deep-purple ★★★★★
()
Ответ на: комментарий от saahriktu

нет пакета в репе - апт матюгнется что «не могу установить пакет такойтович» и дальше продолжит работу.
dpkg –get-selections | grep -v deinstall | awk ‘{ print $2}’ > /etc/111/packages.list

pfg ★★★★★
()
Ответ на: комментарий от saahriktu

Можно отфильтровать пакеты по их источнику, оставив лишь те, что из официального репозитория. Если apt достаточно свежий, то man apt-patterns.

Rootlexx ★★★★★
()

aptitude умеет.

anonymous
()
Ответ на: комментарий от Rootlexx

Если apt достаточно свежий

0.5.15 из 2003-его года.

saahriktu ★★★★★
() автор топика

В общем, тут выход, по ходу, примерно такой:

#!/bin/bash
APTPKGSLIST=""
while read -r IPKGNAME; do
    apt-cache show "$IPKGNAME" > /dev/null
    pkgps=$?
    if [ $pkgps -eq 0 ]; then
        APTPKGSLIST+=" $IPKGNAME"
    fi
done < "$1"
apt-get install $APTPKGSLIST
Где скрипт запускается с аргументом в виде пути к файлу со списком пакетов (по одному на строчку).

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от deep-purple

Нет, не я.

У разных пакетных менеджеров разные дефолты.

Вы говорите, что для пакетных менеджеров противоестественно фильтровать заданные списки имён пакетов.

А я говорю, что это естественно. Поэтому и у DNF'а есть для этого опция, а zypper по дефолту не спотыкается если каких-то пакетов из заданного списка нет.

saahriktu ★★★★★
() автор топика

А есть ли в бубунте метод маскирования, чтобы запретить определенным пакетам обновляться?

anonymous
()
Ответ на: комментарий от saahriktu

тогда просто устанавливай пакеты по одному и никакие опции не будут нужны

Ford_Focus ★★★★★
()
Ответ на: комментарий от saahriktu

как всё-таки тяжко читается баш…

from contextlib import suppress
import apt

packages_list_file = "/tmp/0.txt"
packages=open(packages_list_file, encoding='UTF-8').read().split()

cache = apt.cache.Cache()
with suppress(Exception): cache.update()
cache.open()

for package_name in packages:
    package = cache[package_name]
    if package.is_installed: continue
    package.mark_install()
    with suppress(Exception): cache.commit()
Ford_Focus ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.