Esse é um erro comum em distribuições base Ubuntu, confira o porque, como resolver e de brinde algumas dicas de segurança e integridade do sistema.
Erro Ubuntu A lista de fontes não pode ser lida
O erro se deve a péssima pratica usada no Ubuntu e em suas remasterizações de uso de repositórios de terceiros.
- PPA
- .deb
- Alterações e adições de espelhos na /etc/apt/sources.list
O uso de pacotes e repositórios de terceiros pode:
- Dar o controle total do seu computador para um desconhecido.
- Pode instalar pragas virtuais sem que você nunca descubra por usar um sistema sem anti vírus.
- Tornar o sistema instável e até o quebrar por instalar programas de má qualidade.
- Ficar impossibilitado de fazer atualizações de pacotes e de versões do sistema.
Mas Lobo o fulaninho sorridente do Youtube falou que pode e sou livre no Linux e bla bla bla, aquele site que me ajudou muito também banda eu instalar isso instalar aquilo.
Tudo irresponsáveis safados e você para eles é só RPM, CPC, CTR simples assim, eles te dão o que você quer, o que você está acostumado no Windows, instalar, instalar e instalar mais e mais programas, isso vende e bem.
O erro "E: A lista de fontes não pode ser lida."
Esse erro é gerado geralmente por um erro de digitação no espelho da sources.list, veja o exemplo.
Note que na mensagem de erro é dado o endereço do arquivo com problema "/etc/apt/sources.list.d/vilao.list"
E: Tipo 'https://ppa.launchpadcontent.net/kisak/kisak-mesa/ubuntu' não é conhecido na linha 1 na lista de fontes /etc/apt/sources.list.d/vilao.list
Para arrumar o arquivo abra ele com o Gedit ou o editor de texto da sua preferencia.
sudo gedit /etc/apt/sources.list.d/vilao.list
O erro é a falta do deb no inicio da linha 1, uma falta de atenção sua ao copiar endereços de espelhos de algum site.
Arrumar o erro e continuar usando o repositório de terceiros por sua conta e risco.
Basta adicionar o deb no inicio da linha salvar a alteração e esse problema será resolvido.
Outro erro comum é recomendações de comentar o espelho dos pacotes fonte deb-src, nesse caso para comentar se usa o # mas você pode sem querer digitar $ ou @ gerando o erro.
ar colocando o # no inicio da linha.
Repositórios que você não adicionou
Mas Lobo pera ai, eu não adicionei isso.
Pode ter adicionado sem saber o que estava fazendo adicionando uma PPA com o comando add-apt-repository.
Exemplo.
sudo add-apt-repository ppa:kisak/kisak-mesa
Também pode ter sido um .deb que o fez, fala grave de segurança de todos os empacotamentos Linux e mais grave nos .deb.
Supondo que você instalou o Google Chrome, note na saída do terminal que nada relacionado a adição de repositórios é mencionado.
Veja só onde as coisas obscuras ocorrem nos .deb, descompacte o .deb em seguida descompacte o arquivo control... abra o arquivo postrm, ele está ali para realizar tarefas após a instalação do programa, nesse exemplo ele só adicionou um repositório, mas tenha certeza que nem o inferno é o limite para o postrm.
Veja no quadro abaixo o script completo e entenda ai nem o inferno é o limite.
#!/bin/sh
#
# Copyright (c) 2009 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
set -e
action="$1"
# Only do complete clean-up on purge.
if [ "$action" != "purge" ] ; then
exit 0
fi
# System-wide package configuration.
DEFAULTS_FILE="/etc/default/google-chrome"
# sources.list setting for google-chrome updates.
REPOCONFIG="deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main"
REPOCONFIGREGEX="deb (\[arch=[^]]*\bamd64\b[^]]*\][[:space:]]*) https?://dl.google.com/linux/chrome/deb/ stable main"
APT_GET="`command -v apt-get 2> /dev/null`"
APT_CONFIG="`command -v apt-config 2> /dev/null`"
SOURCES_PREAMBLE="### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.\n"
# Set variables for the locations of the apt trusted keyrings.
find_apt_trusted() {
eval $("$APT_CONFIG" shell APT_TRUSTEDDIR 'Dir::Etc::trustedparts/d')
}
# Install the repository/package signing keys.
# (see also: https://www.google.com/linuxrepositories/)
install_key() {
find_apt_trusted
# ASCII-armored keyrings are only supported in apt 1.4 and later, but we must
# continue supporting Trusty and Xenial which have older versions of apt, so
# the keyring is installed as a binary blob. base64 is used to decode the
# ASCII keyring, which should always be available since it comes from the
# coreutils.
(base64 -d > "$APT_TRUSTEDDIR/google-chrome.gpg") </dev/null)
# Check if the correct repository configuration is in there.
REPOMATCH=$(grep -E "^[[:space:]#]*\b$REPOCONFIGREGEX\b" "$SOURCELIST" \
2>/dev/null)
# Check if the correct repository is disabled.
MATCH_DISABLED=$(echo "$REPOMATCH" | grep "^[[:space:]]*#" 2>/dev/null)
# Now figure out if we need to fix things.
BADCONFIG=1
if [ "$REPOMATCH" ]; then
# If it's there and active, that's ideal, so nothing to do.
if [ ! "$MATCH_DISABLED" ]; then
BADCONFIG=0
else
# If it's not active, but neither is anything else, that's fine too.
if [ ! "$ACTIVECONFIGS" ]; then
BADCONFIG=0
fi
fi
fi
if [ $BADCONFIG -eq 0 ]; then
return 0
fi
# At this point, either the correct configuration is completely missing, or
# the wrong configuration is active. In that case, just abandon the mess and
# recreate the file with the correct configuration. If there were no active
# configurations before, create the new configuration disabled.
DISABLE=""
if [ ! "$ACTIVECONFIGS" ]; then
DISABLE="#"
fi
printf "$SOURCES_PREAMBLE" > "$SOURCELIST"
printf "$DISABLE$REPOCONFIG\n" >> "$SOURCELIST"
if [ $? -eq 0 ]; then
return 0
fi
return 2
}
# Add the Google repository to the apt sources.
# Returns:
# 0 - sources list was created
# 2 - error
create_sources_lists() {
if [ ! "$REPOCONFIG" ]; then
return 0
fi
find_apt_sources
SOURCELIST="$APT_SOURCESDIR/google-chrome.list"
if [ -d "$APT_SOURCESDIR" ]; then
printf "$SOURCES_PREAMBLE" > "$SOURCELIST"
printf "$REPOCONFIG\n" >> "$SOURCELIST"
if [ $? -eq 0 ]; then
return 0
fi
fi
return 2
}
# Remove our custom sources list file.
# Returns:
# 0 - successfully removed, or not configured
# !0 - failed to remove
clean_sources_lists() {
if [ ! "$REPOCONFIG" ]; then
return 0
fi
find_apt_sources
rm -f "$APT_SOURCESDIR/google-chrome.list" \
"$APT_SOURCESDIR/google-chrome-stable.list"
}
# Detect if the repo config was disabled by distro upgrade and enable if
# necessary.
handle_distro_upgrade() {
if [ ! "$REPOCONFIG" ]; then
return 0
fi
find_apt_sources
SOURCELIST="$APT_SOURCESDIR/google-chrome.list"
if [ -r "$SOURCELIST" ]; then
REPOLINE=$(grep -E "^[[:space:]]*#[[:space:]]*$REPOCONFIGREGEX[[:space:]]*# disabled on upgrade to .*" "$SOURCELIST")
if [ $? -eq 0 ]; then
sed -i -e "s,^[[:space:]]*#[[:space:]]*\(.*\)[[:space:]]*# disabled on upgrade to .*,\1," \
"$SOURCELIST"
LOGGER=$(command -v logger 2> /dev/null)
if [ "$LOGGER" ]; then
"$LOGGER" -t "$0" "Reverted repository modification: $REPOLINE."
fi
fi
fi
}
DEFAULT_ARCH="amd64"
get_lib_dir() {
if [ "$DEFAULT_ARCH" = "i386" ]; then
LIBDIR=lib/i386-linux-gnu
elif [ "$DEFAULT_ARCH" = "amd64" ]; then
LIBDIR=lib/x86_64-linux-gnu
elif [ "$DEFAULT_ARCH" = "armhf" ]; then
LIBDIR=lib/arm-linux-gnueabihf
elif [ "$DEFAULT_ARCH" = "arm64" ]; then
LIBDIR=lib/aarch64-linux-gnu
elif [ "$DEFAULT_ARCH" = "mipsel" ]; then
LIBDIR=lib/mipsel-linux-gnu
elif [ "$DEFAULT_ARCH" = "mips64el" ]; then
LIBDIR=lib/mips64el-linux-gnuabi64
else
echo Unknown CPU Architecture: "$DEFAULT_ARCH"
exit 1
fi
}
NSS_FILES="libnspr4.so.0d libplds4.so.0d libplc4.so.0d libssl3.so.1d \
libnss3.so.1d libsmime3.so.1d libnssutil3.so.1d"
add_nss_symlinks() {
get_lib_dir
for f in $NSS_FILES
do
target=$(echo $f | sed 's/\.[01]d$//')
if [ -f "/$LIBDIR/$target" ]; then
ln -snf "/$LIBDIR/$target" "/opt/google/chrome/$f"
elif [ -f "/usr/$LIBDIR/$target" ]; then
ln -snf "/usr/$LIBDIR/$target" "/opt/google/chrome/$f"
else
echo $f not found in "/$LIBDIR/$target" or "/usr/$LIBDIR/$target".
exit 1
fi
done
}
remove_nss_symlinks() {
for f in $NSS_FILES
do
rm -rf "/opt/google/chrome/$f"
done
}
remove_udev_symlinks() {
rm -rf "/opt/google/chrome/libudev.so.0"
}
remove_udev_symlinks
# Only remove the defaults file if it is not empty. An empty file was probably
# put there by the sysadmin to disable automatic repository configuration, as
# per the instructions on the package download page.
if [ -s "$DEFAULTS_FILE" ]; then
# Make sure the package defaults are removed before the repository config,
# otherwise it could result in the repository config being removed, but the
# package defaults remain and are set to not recreate the repository config.
# In that case, future installs won't recreate it and won't get auto-updated.
rm "$DEFAULTS_FILE" || exit 1
fi
# Remove any Google repository added by the package.
clean_sources_lists
uninstall_key
Ai está o que esse script fez, adicionou o repositório do seu desenvolvedor sem você saber.
Nesses casos que repositórios são adicionados sem o seu conhecimento você pode.
- Assumir o risco e confiar no seu desenvolvedor.
- Remover o programa e o repositório fechandoa porta de entrada aberta no seu sistema.
Para remover o programa.
sudo apt remove --purge nomedoprograma
Para remover o repositório basta identificar ele.
ls /etc/apt/sources.list.d
Nesse exemplo temos 3 repositórios de terceiros, o do Chrome apesar de estar ai de forma obscura acredito que podemos confiar.
Supondo que você seguiu uma dica de instalar o programa "vilão.deb" ai malandramente ele criou a sua entrada para fazer alterações na sua Raiz por meio de atualizações do programa "vilão",mas você não confia, não conhece os desenvolvedores do "vilão", nesse caso aconselho fortemente que remova o programa e seu repositório.
Removao programa
sudo apt remove --purge vilão
Remova o repositório
sudo rm -fr /etc/apt/sources.list.d/vilão.list
Remova as demais configurações obscuras que elepossa ter feito.
sudo apt autoremove
Tomem muito cuidado ao seguirem dicas de uso de repositórios e pacotes de terceiros, esses podem te trazer muitas dores de cabeça.
O Ubuntu distribui +_55000 programas em seus repositórios, as remasterizações dele usam o mesmo repositório, acredite usar indiscriminadamente programas e repositórios de terceiros é uma bobagem e a pior coisa que você possa fazer no mundo Linux.
O Ubuntu usa os todos os +- 55000 programas do Debian que tem o mais avançado e exigente e rigorozo controle de qualidade dos programas distribuidos em seus servidores o QA Debian.
Nos programas e repositórios de terceiros é você no escuro pegando o sabonete no chão com om tarado de visão noturna logo atrás de você, se cuda ;) pra não chorar ao usar essas "coisas".
Antes até que existiam programas uteis fora dos repositórios oficiais... Mas nos últimos anos isso praticamente desapareceu... Principalmente depois do Flatpack e Snap
ResponderExcluir