Para entender o que o apt-get purge ./python
tentou fazer, siga as manpage . Primeiro, a sintaxe geral:
apt-get [-asqdyfmubV] [-o=config_string] [-c=config_file]
[-t=target_release] [-a=architecture] {update | upgrade |
dselect-upgrade | dist-upgrade |
install pkg [{=pkg_version_number | /target_release}]... |
remove pkg... | purge pkg... |
source pkg [{=pkg_version_number | /target_release}]... |
Você verá que apt-get
suporta a especificação de uma liberação de destino por meio de /foo
. Portanto, em ./python
, apt-get
interpretou python
como uma liberação de destino. Nós vamos voltar a isso em um momento.
Agora, e quanto a .
? apt-get
suporta expressões regulares e, se o nome do pacote contiver .
, *
, etc., ele será tratado como uma expressão regular. E apt-get
verifica correspondências parciais - desde que a expressão determinada corresponda a uma parte do nome de um pacote, esse pacote é selecionado:
If no package matches the given expression and the expression
contains one of '.', '?' or '*' then it is assumed to be a POSIX
regular expression, and it is applied to all package names in the
database. Any matches are then installed (or removed). Note that
matching is done by substring so 'lo.*' matches 'how-lo' and
'lowest'. If this is undesired, anchor the regular expression with
a '^' or '$' character, or create a more specific regular
expression.
.
corresponde a todos os caracteres - então todos os nome do pacote irão satisfazê-lo. Portanto, apt-get
selecionará todos os pacotes que conhece.
Agora, de volta ao release de destino, ele é usado para especificar qual repositório você deseja segmentar para essa operação, se o mesmo pacote for fornecido por vários repositórios. Veja como instalar atualizações de um repositório específico?
python
não é um lançamento válido no Ubuntu padrão (e é improvável que seja um de qualquer maneira). Portanto, mesmo que apt-get
tenha selecionado todos os pacotes que conhecia , não foi possível encontrar uma versão correspondente e, portanto, falhou.