Tre*_*iño 112 package-management apt software-sources
当我添加一个 PPA 并且我想安装它的一些内容时,使用apt-get update.
是否可以只同步给定存储库的内容?
fun*_*orn 89
是的,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
}
Run Code Online (Sandbox Code Playgroud)将以下内容附加到 ~/.bashrc
if [ -f $HOME/.bash_funcs ]; then
. $HOME/.bash_funcs
fi
Run Code Online (Sandbox Code Playgroud)将以下内容附加到 ~/.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
Run Code Online (Sandbox Code Playgroud)然后源文件
. ~/.bashrc
. ~/.bash_completion
Run Code Online (Sandbox Code Playgroud)完成并开始点火
update-repo <tab> <tab>
Run Code Online (Sandbox Code Playgroud)您可以使用 bash-completion 实现更新单个 ppa 存储库,而无需更新整个 apt 源。
enz*_*tib 46
如果存储库配置在目录中的特定文件中/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"
Run Code Online (Sandbox Code Playgroud)
尽管如此,这不是很方便。
这可以简化定义一个 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"
}
Run Code Online (Sandbox Code Playgroud)
这样你就可以简单地运行
update_repo myrepo
Run Code Online (Sandbox Code Playgroud)
Ali*_*rei 12
Y PPA Manager 附带一个命令行工具update-ppa,可让您更新单个 PPA。
例如:
sudo update-ppa ppa:nilarimogard/webupd8
Run Code Online (Sandbox Code Playgroud)
此外,当通过 Y PPA Manager 添加 PPA 时,PPA 源会自动更新(仅适用于该 PPA)。在未来的版本中,也会有一个 GUI 来手动更新单个 PPA。
有关 Y PPA 经理的更多信息,请点击此处。
要更新特定的存储库,请使用-o,例如:
apt-get update -o Dir::Etc::sourcelist=/path/to/repo.list
Run Code Online (Sandbox Code Playgroud)
这是一个单行更新最近添加的 apt 存储库
find /etc/apt/sources.list.d -type f -name '*.list' -exec sudo apt-get update -o Dir::Etc::sourcelist="{}" ';'
Run Code Online (Sandbox Code Playgroud)
这比更新所有存储库要快得多,尤其是在添加新存储库后进行 VM 配置期间。
该-u选项是在 15.10 中添加的。从 15.10 到 17.10,您可以-u仅自动更新您要添加的特定存储库:
add-apt-repository -u my-ppa
愚蠢的是,这个选项直到 18.04 才添加到(不过,man它已记录在 中)。add-apt-repository --help但在 18.04 中,这个功能被删除了!(同样,不在 中man,但您可以在 中看到add-apt-repository --help)。
在 18.04 中,更新功能更改为始终apt-get update在add-apt-repository. 该-u选项已被有效删除。它保留在旧语法中,但始终设置为options.update = False. 在 18.04 中,您确实可以选择-n, --no-update,这与旧行为类似。但要么全有,要么全无,自 18.04 以来,您无法更新单个存储库。
| 归档时间: |
|
| 查看次数: |
45877 次 |
| 最近记录: |