Когда я добавляю PPA, и я хочу установить часть его содержимого, довольно сложно повторно обновить весь мой список apt, используя apt-get update
.
Возможно ли только синхронизировать содержимое данного репозитория?
Когда я добавляю PPA, и я хочу установить часть его содержимого, довольно сложно повторно обновить весь мой список apt, используя apt-get update
.
Возможно ли только синхронизировать содержимое данного репозитория?
да, apt-get может это сделать и может сделать это красиво.
Добавить в ~/.bash_funcs
update-repo() {
for source in "[email protected]"; 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-завершения.
Если репозиторий настроен в определенном файле в каталоге /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/.list" \
-o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
}
, чтобы вы могли просто запустить
update_repo myrepo
Y PPA Manager поставляется с инструментом командной строки, называемым update-ppa
, который позволяет вам обновлять один PPA.
Например:
sudo update-ppa ppa:nilarimogard/webupd8
Кроме того, при добавлении PPA через Y PPA Manager, источник PPA автоматически обновляется (только для этого PPA). В будущей версии появится графический интерфейс для ручного обновления отдельных PPA.
Дополнительная информация о Y PPA Manager, ЗДЕСЬ . р>
Чтобы обновить определенный репозиторий, используйте -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 после добавления новых.