Как сделать пакман в cmd

Добавил пользователь Владимир З.
Обновлено: 10.09.2024

При установке программного обеспечения в системах Debian мы можем поставить что-то вроде этого:

sudo apt-get install -y chromium-browser

таким образом, установка происходит автоматически, без запроса подтверждения установки [Да / Нет]. Могу ли я сделать то же самое с pacman?

Обратите внимание на квалификацию использования этого с осторожностью .

Arch - это релиз, который означает, что pacman время от времени должен управлять некоторыми довольно сложными обновлениями. В это время pacman предложит вам подтвердить свой выбор - игнорирование этих запросов, как правило, не будет существенной проблемой, но в некоторых случаях, как в случае с недавним переходом от /lib к /usr/lib , отсутствие внимания может привести к серьезной поломке. Это не привычка, которую вы хотите развивать.

Я предполагаю, учитывая культуру Арча, что предупреждение должно препятствовать самоуспокоенности, и ошибочное представление о том, что автоматизация обновлений pacman - хорошая идея. Много поломки может быть подавлено , чтобы люди не читающих выхода pacman в; --noconfirm усугубит это .

На самом деле, pacman --noconfirm требуется, если вы используете Docker-контейнер, в противном случае он просто будет ждать ввода и, таким образом, завершит работу контейнера с ошибкой.

Используйте yes | LC_ALL=en_US.UTF-8 pacman [. ] для совместимости с системами, язык которых не установлен на английский. В противном случае [Y/n] вопросы становятся [J/n] , например.

Также остерегайтесь того, что этот ответ не получится, если Пакман когда-либо задает вопрос без y ответа, например Enter a selection (default=all) .

@ComFreek, вместо того, чтобы изменять передаваемые переменные окружения pacman , было бы проще, и, вероятно, yes J | sudo pacman -S firefox в этом случае безопаснее всего это сделать . yes J приведет yes к повторному выводу J вместо а y .

"и, вероятно, безопаснее" Как это так? Переопределение выше влияет только на среду порожденного процесса (дерева) и заканчивается им. Кроме того, приведенный выше вызов абсолютно одинаков для всех локалей.

Я создаю скрипт python с использованием в том же стиле, что и pacman в Arch Linux, в итоге:

    операции имеют вид -X (дефис, прописная буква), а один - при вызове сценария. варианты имеют вид -X (дефис, строчная буква) и могут означать разные вещи для разных операций.
    pacman -Syu означает выполнение операции sync с параметрами refresh и sysupgrade , обновление всей системы новыми пакетами. pacman -Qu означает выполнение операции query с опцией upgrades , перечисление всех устаревших пакетов. pacman -Ss означает выполнение операции sync с опцией search , которая ожидает другого аргумента в качестве шаблона для поиска в пакетах синхронизации.

Пуншина:

Я изучал библиотеку argparse для python, пытаясь понять, как это реализовать. До сих пор я столкнулся с некоторыми проблемами/проблемами проектирования:

    argparse принимает только аргументы с argparse качестве необязательных аргументов. Все мои "операции" будут отображаться как необязательные аргументы, когда определенно требуется. Я мог бы сделать мой сценарий одним аргументом "позиционный"/обязательный, который будет работать (мне придется переключать операции на слова, например, upgrade или add ), за которыми следуют необязательные аргументы. Это, однако, все равно не решит проблему с одинаковым вариантом-символом, а другая не позволит мне легко перечислить все поддерживаемые операции в тексте --help .

Какой самый гладкий способ обработки этого аргумента? Я не против изменения использования моей команды, но, как я сказал выше, это, похоже, не помогает мне в моей ситуации, насколько я могу судить.

Один из вариантов заключается в том, чтобы сделать -S и -Q частью взаимоисключающей группы параметров с required аргументом ключевого слова, установленным в True . Это не обеспечило бы требование сделать эти первые приведенные аргументы и не ограничивать, какие другие варианты могут использоваться с каждым. При вызове parse_args вам придется принудительно использовать последний.

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

Pacman может держать систему в новейшем состоянии, синхронизируя пакеты с главным сервером, тем самым позволяя сознательному администратору поддерживать систему. Клиент-серверная модель позволяет скачивать/устанавливать пакеты одной командой со всеми требуемыми зависимостями (похоже на apt-get от Debian).

Pacman был написан на языке C и поэтому он быстрый, легкий. Он использует .tar.gz формат пакетов, эти пакеты извлекаются быстрее.

Использование

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

Установка и удаление пакетов

Перед установкой и обновлением пакетов полезно синхронизировать базу данных локально установленных пакетов с удалёнными репозиториями


Для того чтобы установить или обновить один пакет или группу пакетов (включая зависимости), используйте следующую команду:

Иногда пакет имеет несколько версий в разных репозиториях (например в extra и testing). Вы можете указать, какой именно вы хотите установить:

Вы можете совмещать параметры, например, эта команда синхронизирует базы данных и установит пакет:

Удалить пакет (оставляя все зависимости в системе):

Удалить пакет со всеми зависимостями, не используемыми другими установленными пакетами:

По умолчанию Pacman создает резервные копии конфигурационных файлов удаляемых приложений с помощью добавления к ним расширения *. pacsave. Если вы хотите удалить эти файлы при удалении соответствующего пакета (подсказка: это операция называется purging в Debian-системах), вы можете использовать:

Конечно, это может быть дополнено -s, чтобы также удалить ненужные теперь зависимости. Таким образом, команда полностью удалит пакет, его конфигурации и все зависимости, которые больше не нужны:

Обновление системы

Pacman может обновить все пакеты системы одной командой. Количество пакетов зависит от того, насколько ваша система современна.

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

Хорошо выполнять эту команду каждые несколько дней.

Получение списка установленных пакетов для быстрого восстановления системы

Если ваша система упала и ее сложно восстановить то неплохо бы иметь список пакетов которые были установлены в ней.

Сохранить в файл pkglist список пакетов установленных в системе:

Сохраните этот файл на флешке или еще где-нибудь.

Если вдруг с вашей системой случится что-либо неприятное то установленые пакеты легко можно восстановить:

Запросы к базе данных пакетов

  • Поиск пакетов в репозиториях, вы можете указать только часть названия:
  • Поиск среди установленных пакетов:
  • Вывод информации о пакете:
  • Вывод списка файлов пакета:
  • Какой пакет является владельцем файла?
  • Перечислите все пакеты, больше не требуемые как зависимости(сироты):
  • Удалить всех сирот: (Проверьте сначала вывод команды pacman -Qdt.)

Одновременный поиск в репозитории и среди установленных пакетов

Вы можете использовать следующий bash скрипт в качестве эквивалента для одновременного вызова pacman -Ss foo и pacman -Qs foo, для того чтобы узнать, какие из пакетов в выводе установлены на вашей системе. Последние будут помечены звёздочкой.

Сохраните этот скрипт в каталоге, включенном в переменную PATH (например, ~/bin/), и назовите его pacsearch. Сделайте его исполняемым с помощью

Теперь если вы напишете, например:

вывод может выглядеть так:

В этом случае вы узнаете, что ни один из вышеперечисленных пакетов (кроме самого qt) на вашей системе не установлен.

NB1: был добавлен запрос на flyspray с предложением интегрировать вышеуказанную функциональность в сам pacman, чтобы 'грязные' хитрости bash стали стать ненужными с последующими версиями pacman.

NB2: вы можете изменить этот bash скрипт с помощью этого wiki, для того чтобы установленные пакеты были выделены различными цветами в выводе.

Другое использование

Вы можете ввести ссылку:

  • Очистка кэша pacman`а (/var/cache/pacman/pkg):
  • Для того, чтобы переустановить все пакеты в вашей системе (которые доступны в репозитории):

Для более детальной информацией о возможных ключах обратитесь к pacman --help или man pacman.

Настройка

Настройки pacman`a находятся в /etc/pacman.conf . Важными секциями являются:

Основные опции

Основные опции находятся в секции [options]. Есть одна полезная опция IgnorePkg. Например, если вы изменяли или накладывали патч на пакет, добавление его в IgnorePkg укажет pacman'у не обновлять его при выходе следующей версии пакета. Но pacman всё же предупредит вас о том, что доступна более свежая версия, так что в итоге вы можете обновить ваш изменённый пакет. Опция также полезна для БОЛЬШИХ пакетов (например, openoffice-base), если вы хотите избежать скачивания и обновления всего пакета каждый раз, когда в репозитории появляется маленькое изменение. Поскольку pacman всё равно предупредит вас о последней версии, вы можете обновить пакет вручную.

Репозитории

В этой секции вы указываете используемые репозитории. Они могут быть указаны напрямую или как файл, содержащий список серверов. Последнее удобно для официальных репозиториев, имеющих множество зеркал.

с недавним логотипом Google Pac-Man, каждый должен знать, как они выглядят, но в случае, если вы не здесь некоторые примеры изображений:

enter image description here
enter image description here

Если вы ответите "нет", пожалуйста, предоставьте немного больше доказательств того, что вы действительно искали все символы юникода.

пример из того, что я ищу: Если бы я спросил: "есть ли символ, похожий на солнце", я бы ожидал ответа в строках"да, ? и, согласно charmap, это U+263C". Это то, что я ищу, но с Pac-Man или призраком.

использование: Я хотел бы вставить этот символ в текстовое поле веб-формы, чтобы он отображался на веб-странице. Это однострочное текстовое поле, поэтому сложное ASCII-изображение неприемлемо в этом случай.

Как сделать список / файл для установки pacman?

Я пытаюсь перейти от одной арки к установке (разделенной) на другую (менее разделенную) на моем компьютере, и мне нужна аналогичная настройка. Поэтому мне было интересно, есть ли простой способ заставить pacman устанавливать те же пакеты.

Я думал о чем-то вроде

затем создание сценария для установки из этого списка. Есть ли способ создать этот сценарий с помощью нескольких команд; Если нет, как мне это сделать?

  • Серьезно, петля?
  • 1 @TomYan так лучше? "pacman -S $ (

Я знаю, что это устарело, но я хочу предложить более комплексное решение.

Сначала вам понадобится список пакетов, это можно сделать с помощью

Вот pacman -Q запрашивает все установленные программы, -q удаляет номера версий и -e предназначен для перечисления явно установленных программ.

Теперь, когда мы хотим восстановить / установить программы, я предпочитаю делать

Здесь мы получаем только пакеты из списка, доступного в pacman. Это сделано с comm -12 file1 file2 команда. В -12 flag подавляет уникальные строки в файлах 1 и 2 и оставляет нас на пересечении двух файлов; то есть устанавливаемые пакеты.

Читайте также: