Как временно отключить и навсегда отключить репозитории в системах на основе Debian?

Я думаю, что это проще с awk. Вы можете попробовать что-то вроде этого:

$ awk -v v='"' 'BEGIN{FS=OFS=v}{gsub(",","",$2);gsub("\"","",$0);print }' file.txt
0,1,,,10815197,
6,7,010202,,5589,
6,7,010202,,589,
  • По сути, вы говорите awk, который использует регулярное выражение -v v='""', чтобы использовать его в качестве разделителя полей.
  • С помощью FS=OFS=v вы говорите, что разделитель полей такой же, как и разделитель выходных полей, которым является ".
  • gsub(",","",$2) замените , ничем на втором поле $2 (разделенном в начале и в конце ").
  • gsub("\","",$0) берет всю строку и заменяет " ничем перед распечаткой строки.
2
28.04.2018, 22:31
2 ответа

Самый простой способ управления репозиториями, который я нашел, — это разместить их в отдельных файлах в /etc/apt/sources.list.d/. Таким образом, отключить репозиторий так же просто, как переместить файл из /etc/apt/sources.list.d/repo.listв /etc/apt/sources.list.d/repo.list.bak, а повторно -включить репо так же просто, как пойти другим путем. Вы даже можете создать скрипт, который временно отключает репозиторий, перемещая файл, запуская обновление/установку/что угодно, а затем снова перемещая файл обратно.

8
27.01.2020, 22:09

Первоначальный вопрос заключался в том, как запустить apt с отключенным репозиторием только для одного выполнения. На самом деле нет простого способа сделать это. Технически вы можете дать команде apt другую конфигурацию, используя опции -o и/или -c, но это, вероятно, потребует больше усилий, чем оно того стоит.

С помощью команды добавления -apt -репозитория вы можете легко добавлять и удалять репозитории. Это самый практичный способ решить исходный вопрос, который я вижу.

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

sudo add-apt-repository --remove multiverse
sudo apt update
sudo apt install whatever
sudo add-apt-repository multiverse

В противном случае вам нужно будет использовать полную строку deb:

repo="deb http://some.repo.com/foo bionic main"
sudo add-apt-repository --remove "$repo"
sudo apt update
sudo apt install whatever
sudo add-apt-repository "$repo"

--removeудалит репозиторий из sources.list, а также все файлы.list в sources.list.d. Однако следует отметить, что (, если ваше репо не имеет форму ppa:user/somerepo), добавление его снова поместит его в sources.list --, а не в файл в sources.list.d.

3
19.06.2020, 18:25

Теги

Похожие вопросы