Как запустить команду для списка пакетов?

Я попытался установить Gnome 3 в Debian Testing после этого объяснения . Однако это не сработало и оставило меня без графического интерфейса пользователя.

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

Теперь я хочу запустить apt-mark auto для этого списка.

Как мне это сделать?

PS: Я также был бы признателен, если кто-нибудь скажет мне, что это не очень хорошая идея (если это не так).

3 Solutions collect form web for “Как запустить команду для списка пакетов?”

Вы можете использовать xargs:

  cat /path/to/file | xargs apt-mark auto 

Это должно работать, если в текстовом файле /path/to/file есть одно имя пакета для каждой строки.

Другой вариант – использовать цикл for:

  for pkg in `cat /path/to/file`; do apt-mark auto $pkg; done 

Второй способ может быть полезен, если у вас есть аналогичная проблема, когда команда не может быть вызвана со списком параметров, но вы должны называть ее один раз для каждого параметра, который у вас есть. Но в вашем случае это не так уж элегантно … 🙂

Btw Я предполагаю, что вы используете bash.

Примечание. В моей системе apt-mark --help говорится:

 Usage: apt-mark [options] {markauto|unmarkauto} packages... 

А также:

 apt-mark is deprecated, use apt-get markauto/unmarkauto. 

Похоже, вы хотите сбрасывать список файлов в apt-mark auto . Этот псевдокод должен начать работу:

 while read pkgname; do apt-mark auto $pkgname; done <list_of_packages 

Запустите следующий скрипт с python scriptname.py list-of-packages.txt как root :

 import subprocess import sys filename = sys.argv[1] with open(filename) as f: packages = f.read() packages = packages.split() packages = " ".join(packages) cmd = "apt-mark auto " + packages subprocess.call(cmd, shell=True) 

Я ожидаю, что это не будет проблемой, поскольку GNOME предполагает, что у вас уже установлен Python .

  • Пакет докеров не устанавливается из debian, но нормально с ubuntu
  • Как вы уменьшаете количество пакетов в архиве?
  • Удалите все пакеты ядра, кроме используемого в данный момент
  • Установка uwsgi в Debian 6 (Squeeze) требует обновления libc6 и initscripts
  • Получить имя пакета, содержащего данный двоичный код
  • Где vim после установки pkg?
  • Как обновить OpenSSL?
  • Debian Jessie: Когда будут удалены пакеты со статусом «id»?
  • Слишком много установки и удаления?
  • Какая команда apt используется для проверки правильности установки или неправильной конфигурации?
  • CentOS - Yum - Несколько URL-адресов
  • Linux и Unix - лучшая ОС в мире.