Как запустить команду для списка пакетов?
Я попытался установить Gnome 3 в Debian Testing после этого объяснения . Однако это не сработало и оставило меня без графического интерфейса пользователя.
На данный момент я пытаюсь это исправить, и я понял, что существует длинный список пакетов, помеченных как установленный вручную. Я сохранил список пакетов, которые, по моему мнению, должны быть отмечены как автоматически установленные (почти все из них).
- Как восстановить удаленную папку, полную файлов, управляемых dpkg?
- Не удалось удалить dovecot-managedieved
- Как превратить локальный репозиторий yum в локальный спутник для многих других репозиториев
- Как заставить «yum search» использовать локальные метаданные / кеш?
- Центр программного обеспечения Gnome 3
Теперь я хочу запустить apt-mark auto
для этого списка.
Как мне это сделать?
PS: Я также был бы признателен, если кто-нибудь скажет мне, что это не очень хорошая идея (если это не так).
- как обновить один пакет в debian
- Build CentOS RPM для текущей версии git, неудачная перестройка с альтернативным префиксом
- Обновление приложений без метапакетов?
- Debian 9.1: apt-get autoremove не будет удалять зависимости
- Удалите пакеты из ненадежного источника и переустановите их
- CentOS - установить с помощью yum Apache 2.4
- Проблемы с зависимой винной проблемой на Xubuntu
- как я могу установить gcc 4.8 или выше на wheezy?
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 .