Когда я добавляю PPA, и я хочу установить часть его содержимого, очень неприятно повторно обновлять все мои apt-списки, используя apt-get update.
Возможно ли, чтобы только синхронизировать содержимое данного репозитория?
да, apt-get может это сделать и может сделать это красиво.
Добавить в ~/.bash_funcsupdate-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-завершения.
да, apt-get может это сделать и может сделать это красиво.
Добавить в ~/.bash_funcsupdate-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-завершения.
Y PPA Manager поставляется с инструментом командной строки под названием update-ppa, который позволяет вам обновлять один PPA.
Например:
sudo update-ppa ppa:nilarimogard/webupd8
Кроме того, при добавлении PPA через Y PPA Manager, источник PPA автоматически обновляется (только для этого PPA). В будущей версии появится графический интерфейс для ручного обновления отдельных PPA.
Подробнее о Y PPA Manager, ЗДЕСЬ.
Если репозиторий настроен в определенном файле в каталоге /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
Чтобы обновить конкретный репозиторий, используйте -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 после добавления новых.
Y PPA Manager поставляется с инструментом командной строки под названием update-ppa, который позволяет вам обновлять один PPA.
Например:
sudo update-ppa ppa:nilarimogard/webupd8
Кроме того, при добавлении PPA через Y PPA Manager, источник PPA автоматически обновляется (только для этого PPA). В будущей версии появится графический интерфейс для ручного обновления отдельных PPA.
Подробнее о Y PPA Manager, ЗДЕСЬ.
Если репозиторий настроен в определенном файле в каталоге /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
Чтобы обновить конкретный репозиторий, используйте -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 после добавления новых.