apt-get обновляет только репозитории юниверсов и мультиверсий [duplicate]

Когда я добавляю PPA, и я хочу установить часть его содержимого, очень неприятно повторно обновлять все мои apt-списки, используя apt-get update.

Возможно ли, чтобы только синхронизировать содержимое данного репозитория?

97
задан 27 March 2017 в 08:19

8 ответов

да, apt-get может это сделать и может сделать это красиво.

Добавить в ~/.bash_funcs update-repo() { for source in "$@"; do sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/${source}" \ -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" done } следующее дополнение к ~/.bashrc if [ -f $HOME/.bash_funcs ]; then . $HOME/.bash_funcs fi Добавить к ~/.bash_completion # Debian user-defined completion -*- shell-script -*- _ppa_lists(){ local cur _init_completion || return COMPREPLY=( $( find /etc/apt/sources.list.d/ -name "*$cur*.list" \ -exec basename {} \; 2> /dev/null ) ) return 0 } && complete -F _ppa_lists update-repo Затем введите файлы . ~/.bashrc . ~/.bash_completion Готово и начните его запускать update-repo <tab> <tab>

Вы можете обновить один ppa-репозиторий, не обновляя весь apt-источник, с помощью реализации bash-завершения.

77
ответ дан 18 July 2018 в 13:16

да, apt-get может это сделать и может сделать это красиво.

Добавить в ~/.bash_funcs update-repo() { for source in "$@"; do sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/${source}" \ -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" done } следующее дополнение к ~/.bashrc if [ -f $HOME/.bash_funcs ]; then . $HOME/.bash_funcs fi Добавить к ~/.bash_completion # Debian user-defined completion -*- shell-script -*- _ppa_lists(){ local cur _init_completion || return COMPREPLY=( $( find /etc/apt/sources.list.d/ -name "*$cur*.list" \ -exec basename {} \; 2> /dev/null ) ) return 0 } && complete -F _ppa_lists update-repo Затем введите файлы . ~/.bashrc . ~/.bash_completion Готово и начните его запускать update-repo <tab> <tab>

Вы можете обновить один ppa-репозиторий, не обновляя весь apt-источник, с помощью реализации bash-завершения.

77
ответ дан 24 July 2018 в 20:08

Y PPA Manager поставляется с инструментом командной строки под названием update-ppa, который позволяет вам обновлять один PPA.

Например:

sudo update-ppa ppa:nilarimogard/webupd8

Кроме того, при добавлении PPA через Y PPA Manager, источник PPA автоматически обновляется (только для этого PPA). В будущей версии появится графический интерфейс для ручного обновления отдельных PPA.

Подробнее о Y PPA Manager, ЗДЕСЬ.

12
ответ дан 18 July 2018 в 13:16

Если репозиторий настроен в определенном файле в каталоге /etc/apt/sources.list.d/, скажем myrepo.list, вы можете обновить этот единственный репозиторий с помощью команды:

sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/myrepo.list" \ -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"

Тем не менее это не очень удобно , Это можно упростить, задав функцию bash

update_repo() { sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/$1.list" \ -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" }

, чтобы вы могли просто запустить

update_repo myrepo
38
ответ дан 18 July 2018 в 13:16

Чтобы обновить конкретный репозиторий, используйте -o, например:

apt-get update -o Dir::Etc::sourcelist=/path/to/repo.list

. Ниже приведено однострочное обновление только недавно добавленного репозитория apt

find /etc/apt/sources.list.d -type f -name '*.list' -exec sudo apt-get update -o Dir::Etc::sourcelist="{}" ';'

. Это много быстрее, чем обновление всех репозиториев, особенно во время предоставления VM после добавления новых.

8
ответ дан 18 July 2018 в 13:16

Y PPA Manager поставляется с инструментом командной строки под названием update-ppa, который позволяет вам обновлять один PPA.

Например:

sudo update-ppa ppa:nilarimogard/webupd8

Кроме того, при добавлении PPA через Y PPA Manager, источник PPA автоматически обновляется (только для этого PPA). В будущей версии появится графический интерфейс для ручного обновления отдельных PPA.

Подробнее о Y PPA Manager, ЗДЕСЬ.

12
ответ дан 24 July 2018 в 20:08
  • 1
    sudo add-apt-repository ppa:webupd8team/y-ppa-manager, затем sudo apt-get update и, наконец, sudo apt-get install y-ppa-manager – mchid 8 November 2014 в 09:16

Если репозиторий настроен в определенном файле в каталоге /etc/apt/sources.list.d/, скажем myrepo.list, вы можете обновить этот единственный репозиторий с помощью команды:

sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/myrepo.list" \ -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"

Тем не менее это не очень удобно , Это можно упростить, задав функцию bash

update_repo() { sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/$1.list" \ -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" }

, чтобы вы могли просто запустить

update_repo myrepo
38
ответ дан 24 July 2018 в 20:08
  • 1
    Я проверил это снова, но это не сработает, если вы хотите установить пакет с некоторой нерешенной зависимостью от другого репозитория (также в основном архиве) – Treviño 14 November 2011 в 01:25

Чтобы обновить конкретный репозиторий, используйте -o, например:

apt-get update -o Dir::Etc::sourcelist=/path/to/repo.list

. Ниже приведено однострочное обновление только недавно добавленного репозитория apt

find /etc/apt/sources.list.d -type f -name '*.list' -exec sudo apt-get update -o Dir::Etc::sourcelist="{}" ';'

. Это много быстрее, чем обновление всех репозиториев, особенно во время предоставления VM после добавления новых.

8
ответ дан 24 July 2018 в 20:08

Другие вопросы по тегам:

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