имитация команд установки-удаления пакетов

Установка, обновление, настройка Linux

Модераторы: Olej, adminn

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

имитация команд установки-удаления пакетов

Непрочитанное сообщение Olej » 15 янв 2022, 18:47

Понадобилось прогнозировать инсталляции в ограниченной системе: тонкий клиент HP T520.

Как симулировать команды Linux, ничего не меняя в системе
30.12.2019
...
Например, мы можем смоделировать процесс установки или удаления пакета или программы, но без фактической установки или удаления нужного пакета из системы Linux.
Чтобы смоделировать установку Vim в Ubuntu, просто запустите:

Код: Выделить всё

$ sudo apt install vim --dry-run
или

Код: Выделить всё

$ sudo apt install vim --simulate
Или коротко:

Код: Выделить всё

$ sudo apt install vim -s
Что если опция «Dry Run» недоступна?
Насколько я знаю, большинство команд Linux и Unix имеют опцию dry run, но некоторые команды все же не имеют.
Например, команда yum не имеет такой опции.
Если вы хотите смоделировать операции установки или удаления Yum, используйте опцию «setopt», как показано ниже.

Код: Выделить всё

$ yum install --setopt tsflags=test vim
Если вы хотите смоделировать установку пакета .rpm, выполните:

Код: Выделить всё

$ sudo rpm -ivh --test vim-enhanced-7.4.629-6.el7.x86_64.rpm
Более чем достаточно! ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: имитация команд установки-удаления

Непрочитанное сообщение Olej » 31 мар 2022, 00:41

Olej писал(а):
15 янв 2022, 18:47
Понадобилось прогнозировать инсталляции в ограниченной системе
Ещё понадобилось... Выяснить и установить, по возможности, GoLang, язык Go на Raspberry Pi.

Код: Выделить всё

olej@raspberrypi:~$ inxi -Cxxx
CPU:       Quad core ARMv7 rev 5 (v7l) (-MCP-) (ARM)bmips:
           clock speeds: 1:  MHz 2:  MHz 3:  MHz 4:  MHz

Код: Выделить всё

olej@raspberrypi:~$ uname -a
Linux raspberrypi 4.9.80-v7+ #3 SMP Tue Jun 4 10:44:43 CEST 2019 armv7l GNU/Linux

Код: Выделить всё

olej@raspberrypi:~$ df
Файловая система 1K-блоков Использовано Доступно Использовано% Cмонтировано в
/dev/root          3763904      1540964  2046224           43% /
devtmpfs            474224            0   474224            0% /dev
tmpfs               474736            0   474736            0% /dev/shm
tmpfs               474736        30244   444492            7% /run
tmpfs                 5120            4     5116            1% /run/lock
tmpfs               474736            0   474736            0% /sys/fs/cgroup
/dev/mmcblk0p1       43234        31582    11652           74% /boot
tmpfs                94944            0    94944            0% /run/user/0
tmpfs                94944            0    94944            0% /run/user/1001

Код: Выделить всё

olej@raspberrypi:~$ aptitude search golang-go | grep "golang-go "
p  golang-go - Go programming language compiler, linker, compiled stdlib

Код: Выделить всё

olej@raspberrypi:~$ aptitude show golang-go
Пакет: golang-go                      
Версия: 2:1.7~5
Состояние: не установлен
Приоритет: необязательный
Раздел: devel
Сопровождающий: Go Compiler Team <pkg-golang-devel@lists.alioth.debian.org>
Архитектура: armhf
Размер в распакованном виде: 51,2 k
Зависит: golang-1.7-go, golang-src (>= 2:1.7~5)
Конфликтует: gccgo-go
Ломает: gccgo-5 (< 5.3.1-12~), gccgo-6 (< 6-20160319-1~), golang-doc (< 2:1.6.1+1~), golang-go-darwin-386,
        golang-go-darwin-amd64, golang-go-freebsd-386, golang-go-freebsd-amd64, golang-go-freebsd-arm,
        golang-go-linux-386, golang-go-linux-amd64, golang-go-linux-arm, golang-go-netbsd-386, golang-go-netbsd-amd64,
        golang-go-windows-386, golang-go-windows-amd64, golang-go.tools (< 1:0.0~git20151026.0.0f9d71c-1~),
        golang-golang-x-tools (< 1:0.0~git20151026.0.0f9d71c-1~)
Заменяет: golang-doc (< 2:1.6.1+1~), golang-go-darwin-386, golang-go-darwin-amd64, golang-go-freebsd-386,
          golang-go-freebsd-amd64, golang-go-freebsd-arm, golang-go-linux-386, golang-go-linux-amd64, golang-go-linux-arm,
          golang-go-netbsd-386, golang-go-netbsd-amd64, golang-go-windows-386, golang-go-windows-amd64, golang-go.tools (<
          1:0.0~git20151026.0.0f9d71c-1~), golang-golang-x-tools (< 1:0.0~git20151026.0.0f9d71c-1~)
Описание: Go programming language compiler, linker, compiled stdlib
 The Go programming language is an open source project to make programmers more productive. Go is expressive, concise,
 clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and
 networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to
 machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically
 typed, compiled language that feels like a dynamically typed, interpreted language. 
 
 This is a dependency package that depends on the default Go toolchain and compiled standard library. It is only built on
 architectures that have a native toolchain ("gc compiler"). Packages that want to build with whichever of gc or gccgo is
 available should depend on golang-any.
Домашняя страница: https://golang.org

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: имитация команд установки-удаления

Непрочитанное сообщение Olej » 31 мар 2022, 00:46

Olej писал(а):
31 мар 2022, 00:41
Выяснить и установить, по возможности, GoLang, язык Go на Raspberry Pi.
Проверка:

Код: Выделить всё

olej@raspberrypi:~$ sudo apt install --simulate golang-go
[sudo] пароль для olej: 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  golang-1.7-go golang-1.7-src golang-src
Предлагаемые пакеты:
  bzr mercurial
НОВЫЕ пакеты, которые будут установлены:
  golang-1.7-go golang-1.7-src golang-go golang-src
обновлено 0, установлено 4 новых пакетов, для удаления отмечено 0 пакетов, и 20 пакетов не обновлено.
Inst golang-1.7-src (1.7.4-2+rpi1 Raspbian:stable [armhf])
Inst golang-1.7-go (1.7.4-2+rpi1 Raspbian:stable [armhf])
Inst golang-src (2:1.7~5 Raspbian:stable [armhf])
Inst golang-go (2:1.7~5 Raspbian:stable [armhf])
Conf golang-1.7-src (1.7.4-2+rpi1 Raspbian:stable [armhf])
Conf golang-1.7-go (1.7.4-2+rpi1 Raspbian:stable [armhf])
Conf golang-src (2:1.7~5 Raspbian:stable [armhf])
Conf golang-go (2:1.7~5 Raspbian:stable [armhf])

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: имитация команд установки-удаления

Непрочитанное сообщение Olej » 18 янв 2023, 03:15

Olej писал(а):
31 мар 2022, 00:46
Проверка:
Установка:

Код: Выделить всё

olej@raspberrypi:~$ sudo apt install golang-go
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  golang-1.7-go golang-1.7-src golang-src
Предлагаемые пакеты:
  bzr mercurial
НОВЫЕ пакеты, которые будут установлены:
  golang-1.7-go golang-1.7-src golang-go golang-src
обновлено 0, установлено 4 новых пакетов, для удаления отмечено 0 пакетов, и 20 пакетов не обновлено.
Необходимо скачать 25,1 MБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 140 MB.
Хотите продолжить? [Д/н] y
Ошк:1 http://raspbian.raspberrypi.org/raspbian stretch/main armhf golang-1.7-src armhf 1.7.4-2+rpi1
  404  Not Found [IP: 93.93.128.193 80]
Ошк:2 http://raspbian.raspberrypi.org/raspbian stretch/main armhf golang-1.7-go armhf 1.7.4-2+rpi1
  404  Not Found [IP: 93.93.128.193 80]
Пол:3 http://fastmirror.pp.ua/raspbian/raspbian stretch/main armhf golang-src armhf 2:1.7~5 [3.560 B]
Пол:4 http://fastmirror.pp.ua/raspbian/raspbian stretch/main armhf golang-go armhf 2:1.7~5 [22,7 kB]
Получено 26,3 kБ за 4с (5.384 Б/c)  
E: Не удалось получить http://raspbian.raspberrypi.org/raspbian/pool/main/g/golang-1.7/golang-1.7-src_1.7.4-2+rpi1_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
E: Не удалось получить http://raspbian.raspberrypi.org/raspbian/pool/main/g/golang-1.7/golang-1.7-go_1.7.4-2+rpi1_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
E: Невозможно получить некоторые архивы, вероятно надо запустить apt-get update или попытаться повторить запуск с ключом --fix-missing

Код: Выделить всё

olej@raspberrypi:~$ sudo apt install golang-go --fix-missing
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  golang-1.7-go golang-1.7-src golang-src
Предлагаемые пакеты:
  bzr mercurial
НОВЫЕ пакеты, которые будут установлены:
  golang-1.7-go golang-1.7-src golang-go golang-src
обновлено 0, установлено 4 новых пакетов, для удаления отмечено 0 пакетов, и 20 пакетов не обновлено.
Необходимо скачать 25,1 MB/25,1 MB архивов.
После данной операции, объём занятого дискового пространства возрастёт на 140 MB.
Хотите продолжить? [Д/н] y
Ошк:1 http://raspbian.raspberrypi.org/raspbian stretch/main armhf golang-1.7-src armhf 1.7.4-2+rpi1
  404  Not Found [IP: 93.93.128.193 80]
Ошк:2 http://raspbian.raspberrypi.org/raspbian stretch/main armhf golang-1.7-go armhf 1.7.4-2+rpi1
  404  Not Found [IP: 93.93.128.193 80]
Невозможно исправить ситуацию с пропущенными пакетами.
E: Не удалось получить http://raspbian.raspberrypi.org/raspbian/pool/main/g/golang-1.7/golang-1.7-src_1.7.4-2+rpi1_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
E: Не удалось получить http://raspbian.raspberrypi.org/raspbian/pool/main/g/golang-1.7/golang-1.7-go_1.7.4-2+rpi1_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
E: Аварийное завершение установки.
Вот так! :lol:
Проведение симуляции никак не гарантирует установки!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

имитация команд установки-удаления пакетов

Непрочитанное сообщение Olej » 19 июл 2023, 15:15

Olej писал(а):
18 янв 2023, 03:15
Проведение симуляции никак не гарантирует установки!
Симмуляция может оказаться полезной при проверке возможностей обновлений...
Вот как решается дыра в пакетной системе Mint 21.2 с пакетом cmake (см. Linux Mint 21)

Код: Выделить всё

olej@R420:~$ apt-mark showhold
cmake

Код: Выделить всё

olej@R420:~$ sudo apt-mark unhold cmake
[sudo] пароль для olej:       
Отмена фиксации для cmake.

Код: Выделить всё

olej@R420:~$ sudo apt upgrade --simulate cmake
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово         
Расчёт обновлений… Готово
Некоторые пакеты не могут быть установлены. Возможно, то, что вы просите,
неосуществимо, или же вы используете нестабильную версию дистрибутива, где
запрошенные вами пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, вам поможет:

Следующие пакеты имеют неудовлетворённые зависимости:
 cmake : Зависит: libssl1.1 (>= 1.1.1) но он не может быть установлен
E: Сломанные пакеты
Не :!: Как была дыра в Mint 21.1, так она и сталась в Mint 21.2 :-(

Код: Выделить всё

olej@R420:~$ sudo apt-mark hold cmake
cmake помечен как зафиксированный.

Ответить

Вернуться в «Администрирование Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей