Solucionar problemas de cache de ativos
O cache de ativos acelera a recuperação de pacotes armazenando pacotes baixados (ativos) localmente ou em uma rede, reduzindo a dependência de fontes externas. Este guia ajuda os usuários que enfrentam dificuldades com a configuração ou operação do cache de ativos.
Para obter instruções de configuração inicial, consulte a documentação de cache de ativos.
Diagnosticando erros de cache de ativos
vcpkg verifica os caches de ativos disponíveis antes de baixar artefatos da Internet. Por padrão, ele retorna silenciosamente para fontes externas se um ativo não for encontrado no cache.
A opção 'x-block-origin'' transforma falhas de restauração de ativos em erros explícitos de compilação, evitando downloads externos não intencionais. Use essa opção para aprimorar a segurança e tornar os acessos de cache ausentes mais visíveis.
Detectar problemas de restauração de ativos
Os problemas de restauração de ativos são silenciosos por padrão. Eles podem ser detectados validando a URL de download de um artefato.
Downloading 7zip...
https://www.7-zip.org/a/7z2301-extra.7z -> C:\vcpkg\downloads\7z2301-extra.7z
Ou um erro explícito quando a x-block-origin
opção está ativada:
error: Failed to download from mirror set
Detectar problemas de carregamento de ativos
Se uma origem de ativo estiver configurada corretamente, vcpkg emitirá um aviso quando um ativo não puder ser carregado no cache.
warning: failed to store back to mirror
Os artefatos não estão sendo carregados ou restaurados do meu cache de ativos
O x-azurl
back-end de cache de ativos fornecido pelo vcpkg foi projetado para funcionar com Contêineres de Armazenamento do Azure, ele pode funcionar com outros serviços de armazenamento que aceitam solicitações PUT com autenticação de token simples.
A configuração tem o seguinte formato:
x-azurl,<url>,<sas>[,<rw>]
<url>
: URL base do contêiner<sas>
: um token de Assinatura de Acesso Compartilhado (SAS) se estiver trabalhando com Contêineres de Armazenamento do Azure; ou um parâmetro de solicitação de autenticação se estiver trabalhando com outros provedores.<rw>
: (Opcional) configuração de permissão de leitura/gravação
Observação
Embora projetado para funcionar com contêineres de armazenamento do Azure. O x-azurl
back-end pode ser usado para serviços de armazenamento que aceitam solicitações na forma de <url>?<sas>
.
Por exemplo, x-azurl,https://contoso.com,token=TOKEN_VALUE,readwrite
resulta em uma solicitação na forma de https://contoso.com?token=TOKEN_VALUE
.
Se o provedor de cache de ativos não exigir autorização, o <sas>
parâmetro poderá ser deixado vazio. Por exemplo, x-azurl,https://contoso.com,,readwrite
.
Causa 1: A URL não está formatada corretamente
Ao configurar o cache de ativos, certifique-se de incluir https://
como parte da URL.
Etapas para resolver:
1 - Verifique se a URL configurada está correta.
Causa 2: O token de autorização não está formatado corretamente
vcpkg usa o <sas>
parâmetro para autenticar seu provedor de cache de ativos.
Há uma variedade de razões pelas quais a autorização pode não ser bem-sucedida.
Se você estiver usando um Contêiner de Armazenamento do Azure, o <sas>
parâmetro deverá conter apenas o token SAS sem qualquer outra formatação de parâmetro de solicitação. Por exemplo:
x-azurl,https://mystorageaccount.blob.core.windows.net/mystoragecontainer,sasvaluehere,readwrite
Leia a documentação sobre a geração de tokens SAS para obter mais informações. Verifique se as permissões de leitura e gravação do token gerado correspondem ao seu caso de uso necessário.
Se você estiver usando um provedor diferente, talvez seja necessário formatar os parâmetros de solicitação corretamente. Por exemplo, prefixar um nome de parâmetro antes do valor do token.
x-azurl,https://contoso.com,authorization=tokenvaluehere,readwrite
.
Etapas para resolver:
1 - Verifique se o token de autorização não expirou
2 - Verifique se o token de autorização tem as permissões corretas para o seu contêiner
3 - Verifique se o valor do token de autorização está correto
4 - Verifique se o formato do token de autorização corresponde ao formato esperado pelo seu provedor.
Recebo uma mensagem de erro "Falha ao baixar do conjunto de espelhos"
Esse problema ocorre quando a configuração de cache de ativos contém x-block-origin
.
O uso x-block-origin
transforma falhas para restaurar um ativo de qualquer cache configurado em falhas de compilação de pacote. Evitando o acesso possivelmente indesejado a fontes externas.
Etapas para resolver:
1 - Verifique se sua rede tem acesso à fonte do ativo
2 - Verifique se o ativo solicitado existe em pelo menos um dos caches de ativos configurados. Se o pacote não existir, há dois métodos para resolver o problema:
- Desativando
x-block-origin
temporariamente, para permitir que vcpkg faça download do ativo e carregue-o em um cache de ativo configurado. - Carregando o ativo manualmente em um dos caches de ativos configurados.
3 - Verifique se os caches de ativos estão configurados corretamente, siga as etapas em Artefatos não estão sendo carregados ou restaurados do meu cache de ativos.
O problema não está listado aqui
Se o seu problema não estiver listado aqui, visite nosso repositório para criar um novo problema.