Gerando uma lista de aplicativos da instalação antiga para executá-la na nova instalação

8

Quero mudar do ubuntu-desktop 10.10 para o ubuntu netbook edition 10.10 no meu netbook. Atualmente, no momento em que mudo para o ubuntu a partir da minha rede ad-hoc, o ubuntu congela. Sempre requer um desligamento a frio. Portanto, esperamos que a edição do netbook possa não ter esse problema. Eu instalei muitos aplicativos personalizados na edição para desktop. Então, eu quero salvar a lista de aplicativos em um script e executar o script na nova instalação, para que todos os aplicativos sejam baixados e instalados. Preciso de sugestões sobre a melhor maneira de conseguir isso.

nixnotwin
fonte
Qualquer um que pense em sugerir dpkg --get-selections: lembre-se de que há um conjunto diferente de pacotes instalados pelo sistema. Você precisaria filtrar com base em quais aplicativos foram instalados após o sistema base.
Oli
11
Os congelamentos provavelmente estão relacionados aos drivers do kernel / xorg / X, é muito improvável que a alteração do gerenciador do Windows o conserte.
João Pinto
Além disso, a unidade em 10.10 é mais "congelamento" do que qualquer outra coisa
Extender
11
Verifique também o apt no cd, se você não quiser fazer o download novamente.
Jeremy

Respostas:

9

Execute esse monstro em sua instalação existente, substitua 12.04sua versão do Ubuntu e i386pela arquitetura (i386 ou amd64):

release_num='12.04'
arch='i386'

comm -23 \
    <(sort <(aptitude search '~i!~E' --disable-columns | grep -v "i A " | cut -d " " -f 3)) \
    <(sort <(wget -q -O- http://releases.ubuntu.com/maverick/ubuntu-${release_num}-desktop-${arch}.manifest | grep -E -o '^[^ ]+')) \
| sed 's/$/ install/g' > packages

Irá gerar um arquivo chamado packages. Copie isso para algum lugar da sua nova instalação e execute:

sudo apt-get update
sudo bash -c "cat packages | xargs apt-get -y install"

Nota: Isso compara os pacotes usados ​​no LiveCD com os atuais. No momento, existem alguns pacotes (gparted, btrfs-tools, etc) que estão no CD que não estão instalados. Se você instalou o gparted manualmente, também será necessário reinstalá-lo na nova máquina. Felizmente, isso se aplica apenas a alguns pacotes, todos fáceis de instalar se / quando você perceber que precisa.

Além disso, se você usar PPAs ou outros repositórios, certifique-se de configurá-los na nova máquina antes de executar isso.

Oli
fonte
Basta usar o .manifest-desktop. Por exemplo. O gparted e o btrfs-tools não fazem parte da instalação padrão (eles estão apenas no CD). Se você instalou manualmente esses pacotes, eles não apareceriam em 'pacotes'.
precisa saber é o seguinte
Você pode querer ordenar as duas partes através da classificação, como 'comm' reclamou que os dois arquivos não foram classificados. IIUC, este deve ter o mesmo 'problema' com os pacotes da instalação padrão, que foram marcados manualmente como 'instalados manualmente' (acho que seria a terceira coluna de 'comm'?).
htorque
Onde .manifest-desktopmora Estou prestes a editar para adicionar a classificação. Eles pareciam ordenados, então eu não pensei que tinha que fazer isso, mas aparentemente não. Boa pegada. Para ser franco, digitei esta postagem da cama no meu telefone usando um teclado desagradável de 15 mm * 100 mm. ;)
Oli
Essa é a desvantagem - não parece estar disponível on-line como esse arquivo. Manifest. : - / No CD está na pasta 'casper'.
precisa saber é
Eu tive uma caçada e não consigo encontrar uma versão recente. Eu acho que usar uma versão antiga é tão prejudicial quanto baixar o ISO apenas para extraí-lo é um desperdício de energia. Eu acho que só precisa ser uma ressalva desse processo. Pode ser necessário instalar manualmente alguns pacotes que você tinha antes, mas isso fará com a maioria deles.
Oli
7

Sugiro usar oneconf Instale oneconf

Ele se integra muito bem ao Software Center e faz o que você deseja.

Chipaca
fonte
O oneconf está pronto para uso por usuários regulares?
Decio Lira
Usuários regulares provavelmente podem usá-lo, mas ainda não o amarão; precisa de muito amor antes que seja esse o caso. No entanto, é útil.
Chipaca
6

Acho que outras pessoas responderam à parte técnica da sua pergunta, gostaria de responder à pergunta implícita - "a mudança para o Unity solucionará esse problema ssh", e a resposta é que eu receio que duvide. As sessões remotas de shell geralmente não estão exercitando o Unity ou a área de trabalho. Se você puder acessar a área de trabalho com facilidade de uma rede com fio, mas não de uma rede ad-hoc, o congelamento provavelmente está relacionado aos drivers sem fio e não ao shell da área de trabalho.

Mark Shuttleworth
fonte
Em segundo lugar, como a edição netbook e a desktop usam quase todos os mesmos drivers / pacotes, é improvável que a reinstalação resolva qualquer coisa. Melhor para diagnosticar problemas de rede.
ImaginaryRobots
Mark, Sim, parece que é um problema de driver. Mas, em casos raros, também aconteceu na rede com fio. Eu deveria tentar desligar o cartão e tentar.
Nixnotwin
1

Há um arquivo chamado 'filesystem.manifest-desktop' na pasta 'casper' no CD (ou extraia-o do arquivo ISO). Ele contém todos os pacotes que são instalados, menos os baixados durante a instalação (atualizações, langpacks?).

Portanto, algo assim deve fornecer a lista de pacotes adicionados e removidos:

dpkg --get-selections | awk '{print $1}' > now.txt
awk '{print $1}' filesystem.manifest-desktop > then.txt
diff -u then.txt now.txt | grep '^+' | sed 's/^+//' | grep -v '^+' > add.txt
diff -u then.txt now.txt | grep '^-' | sed 's/^-//' | grep -v '^-' > rem.txt

Você pode instalar via:

cat added.log | xargs sudo apt-get install

(Você precisa garantir que todos esses pacotes estejam disponíveis, caso contrário, esse comando falhará.)

htorque
fonte
11
Isso fará com que os pacotes instalados automaticamente atuais sejam instalados manualmente no novo sistema?
Oli
Parece que meu 'add.txt' contém os mesmos pacotes que seus 'pacotes', então acho que não. No entanto, o que isso não faz é definir os pacotes da instalação como 'instalados manualmente', se você o fez no sistema atual.
htorque
2
Roubei seu método de reinstalação, mas você deve observar que o xargs pode dividir as coisas em vários comandos, se houver muitos argumentos. Dado quanto tempo poderia haver entre o download do primeiro lote e do segundo, o sudo provavelmente expiraria. É por isso que envolvi o meu em um sudo bash -c "...".
Oli
Na verdade, pensei que seu modo de instalação fosse melhor porque o dselect mostraria explicitamente pacotes que não podem ser instalados (PPAs desconhecidos, .debs de terceiros), para que você pudesse desmarcá-los. Com o apt é tudo ou nada.
precisa saber é o seguinte