Рейтинг:10

Как навсегда отключить автоматическое обновление кеша пакетов после добавления PPA?

флаг us

В последних выпусках Ubuntu добавление PPA автоматически немедленно обновляет кеш пакетов.

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

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

я нашел это вопрос, который предлагает использовать add-apt-repository -n ppa:user/repo.

Как изменить поведение по умолчанию, чтобы кэш пакетов не обновлялся, даже если флаг не ставится?

Например, в Linux Mint кэш пакетов никогда не обновляется автоматически после добавления PPA. Как сделать это поведением по умолчанию в Ubuntu?

Terrance avatar
флаг id
Потрясающий вопрос! Я не очень хорошо разбираюсь в псевдонимах, но, возможно, настрою псевдоним, например `add-apt-repository -ny`, но я не очень хорош в чем-то подобном.
mchid avatar
флаг bo
@Terrance Поскольку команда использует `sudo`, вам нужно будет добавить псевдоним для команды `sudo`: `alias sudo='sudo`` (с пробелом после sudo). В противном случае команды `sudo` не будут использовать ваши псевдонимы.
Terrance avatar
флаг id
@mchid Говорил тебе, что у меня плохо получается! :) Это имеет большой смысл. Спасибо! :)
muru avatar
флаг us
Что касается Linux Mint, они используют [свою собственную древнюю копию `add-apt-repository`](https://github.com/linuxmint/mintsources/blob/master/usr/bin/add-apt-repository).
Рейтинг:7
флаг bo

Для конкретного пользователя вы можете добавить псевдоним для добавить-способный-репозиторий.

Добавьте следующие строки в конец вашего ~/.bashrc файл:

псевдоним sudo='sudo'
псевдоним add-apt-repository='add-apt-repository -n'
псевдоним apt-add-repository='добавить-apt-репозиторий -n'

После сохранения изменений не забудьте указать источник ~/.bashrc файл:

. ~/.bashrc

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

Liso avatar
флаг sd
Умный обходной путь +1!
Рейтинг:5
флаг zw

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

кот <<\EOF | sudo tee /usr/local/bin/add-apt-repository
#!/бин/баш
/usr/bin/add-apt-repository -n $@
EOF
sudo chmod +x /usr/local/bin/add-apt-repository

и не забывайте о apt-добавить-репозиторий синоним команды - запустить

sudo ln -s /usr/local/bin/add-apt-repository /usr/local/bin/apt-add-repository

Затем используйте любую из этих команд с опция добавлена ​​автоматически.

Рейтинг:3
флаг my

Опытные пользователи

Вы можете изменить исходный код, чтобы удалить удачное обновление команда.

Вот блок кода, который вам нужно удалить из /usr/bin/добавить-apt-репозиторий файл:

        если обновить, а не options.remove:
            os.execvp("apt-get", ["apt-get", "update"])
        системный выход (0)

Это удалит команду обновления.

ПРИМЕЧАНИЕ: Этот кусок кода встречается в файле два раза, надо удалить ПОСЛЕДНИЙ. Этот фрагмент кода в большинстве файлов был бы где-то возле линии 198.

Вы можете открыть файл с помощью текстового редактора, например нано и удалите этот кусок кода.

Вы также можете немного изменить код, например:

        если обновить, а не options.remove:
            os.execvp ("подходящий-получить", ["подходящий-получить", "му"])
        системный выход (0)

ПРИМЕЧАНИЕ: отредактируйте этот файл с помощью текстового редактора терминала, например нано вместо графических редакторов, таких как гэдит.

Новички

Откройте терминал с помощью Ctrl + Альт + Т

  1. Сначала установите нано:

    судо подходящее обновление
    sudo apt установить нано
    
  2. Отредактируйте файл:

    sudo nano /usr/bin/add-apt-repository
    
  3. Несколько раз нажмите клавишу со стрелкой вниз, пока не дойдете до конца файла.

  4. Вы найдете если заявление, которое выглядит точно так:

            если обновить, а не options.remove:
                os.execvp("apt-get", ["apt-get", "update"])
            системный выход (0)   
    
  5. Удалить все если блок кода, упомянутый выше.

  6. Нажимать Ctrl + Икс а затем выберите Д и нажмите ВОЙТИ.

Тестовое задание

Тестовое задание

Восстановить файл

Запутался?

Не беспокойтесь! Если мы побежим дпкг -S в файле мы видим:

$ dpkg -S /usr/bin/add-apt-репозиторий 
общие свойства программного обеспечения: /usr/bin/add-apt-repository

Так что просто запустите:

судо подходящее обновление
sudo cp -r /usr/bin/add-apt-репозиторий /tmp
sudo rm -rf /usr/bin/add-apt-репозиторий
sudo apt install software-properties-common --reinstall
Someone avatar
флаг my
Для нашего сообразительного минусовщика: подумайте о том, чтобы объяснить, почему вы проголосовали против. Это именно то, чего они хотели. Не стесняйтесь редактировать или давать предложения. Хотя бы назовите причину минуса. Я не думаю, что вы проголосовали только за то, чтобы потерять 1 повторение. Подумайте о том, чтобы указать причину, чтобы ваша потеря 1 повторения не была потрачена впустую.
флаг ua
Вы ломаете много вещей для предстоящих обновлений. Если вы хотите использовать пользовательскую версию, поместите ее в `/usr/local/bin`, которая должна находиться в `$PATH` перед `/usr/bin` и никогда не используется официальными программами. Таким образом, вы не нарушите обновления `apt-add-repository`, а для отмены изменения потребуется просто удалить файл в `/usr/local/bin`. Вы также предлагаете собственный сценарий, который нельзя легко проверить, когда другие ответы уже предлагают минимальные сценарии-оболочки, которые также решают проблему, просты для понимания и устанавливаются таким образом, чтобы не нарушать будущие обновления.
Someone avatar
флаг my
@allo Хорошо, я согласен и полностью принимаю ваше беспокойство. Тем не менее, это все еще кажется мне, по крайней мере, *хорошим* ответом. Итак, я не собираюсь его удалять... Тем не менее, не стесняйтесь отредактировать и вставить свое беспокойство по поводу `/usr/local/bin` или опубликовать новый ответ о том же. * Вы также предлагаете собственный скрипт, который нельзя легко проверить * Я должен был уточнить, что скрипт удалил из него только строку кода, которая удаляет подходящее обновление.
флаг ua
Это не плохой ответ сам по себе. Я только подумал, что когда вы спрашиваете подробности, почему кто-то может понизить его, я постараюсь указать на несколько проблем, из-за которых он может получить меньше голосов, чем другие ответы. Если вы предлагаете удалить несколько строк, попробуйте объяснить это изменение, и оно может оказаться действительно полезным. Когда исходная версия может измениться в будущем, ваши изменения, возможно, все еще могут быть применены к новой версии, но измененная копия не будет содержать обновлений из основной ветки.
Someone avatar
флаг my
@allo **Похоже, я исправил эти проблемы в своем последнем редактировании.**
флаг us
+1. Однако это слишком сложно.

Ответить или комментировать

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