como descobrimos quais são nossas opções para atualizações via backports?
Execute o apt-get com a opção --default-release
ou -t
:
sudo apt-get -t precise-backports upgrade
É o mesmo que apt-get install ipython/precise-backports
, mas você não precisa inserir a parte precise-backports
.
Estou surpreso que, mesmo se eu pedir status, por exemplo via
wajig status ipython
não me diz que há uma nova versão disponível.
Para isso eu uso apt-cache policy
:
apt-cache policy iceweasel
iceweasel:
Installed: 25.0~a2+20130816004007-1~bpo70+1
Candidate: 25.0~a2+20130816004007-1~bpo70+1
Package pin: 25.0~a2+20130816004007-1~bpo70+1
Version table:
*** 25.0~a2+20130816004007-1~bpo70+1 1990
1990 http://mozilla.debian.net/ wheezy-backports/iceweasel-aurora i386 Packages
100 /var/lib/dpkg/status
23.0-2 1990
-1 http://ftp.us.debian.org/debian/ experimental/main i386 Packages
17.0.8esr-2 1990
990 http://ftp.utexas.edu/debian/ testing/main i386 Packages
-1 http://ftp.de.debian.org/debian/ sid/main i386 Packages
Em seguida, como posso evitar a perda de pacotes existentes apenas porque faço upgrade por meio de um backport?
Se os pacotes que você deseja atualizar quebrarem as dependências anteriores, você deve decidir se está atualizando ou deixando as coisas como estão. Ou você apenas força as coisas e interrompe a sua instalação, depende de você.
Como posso dizer que eu quero o mais recente ipport suportado, assim como qualquer outro pacote para o qual as atualizações estejam disponíveis e que dependam dele, sem que seja possível manualmente descobri-las e instalá-las também?
O mesmo que acima.
Mas se um usuário pedir que um pacote seja atualizado, não seria natural atualizar todas as dependências, como você obteria de um ppa?
Se não houver candidatos de atualização, não. Isso acontece muito nas distribuições de lançamentos, alguns pacotes dependem de outros que ainda não estão disponíveis nos repositórios, então o apt decide não fazer o upgrade, pois quebra as dependências.
Para o caso de ipython
que você mencionou nos comentários:
Após a página de dependências do pacote ipython-notebook=0.13.2-1~ubuntu12.04.1
depende de ipython=0.13.2-1~ubuntu12.04.1
, mas se você tentar atualizar ipython
sozinho, o apt irá tomar suas ações como prioridade e cumpri-las a qualquer custo. Como você está dizendo ao apt para instalar o ipython
dos backports, ele entende:
Cumprir somente esta condição a qualquer custo
Assim, a única maneira de fazer isso é remover / rebaixar qualquer pacote que obtenha dependências quebradas devido a essa operação ( ipython-notebook
) e instalar ipython
de backports. A maneira correta de fazer isso é:
sudo apt-get -t precise-backports install ipython-notebook ipython
ou
sudo apt-get -t precise-backports upgrade
O primeiro irá dizer ao apt-get para instalar ipython-notebook
e ipython
dos backports, o segundo irá dizer para atualizar qualquer pacote instalado que tenha atualizações no repositório precise-backports
.