Takie przeniesienie systemu?

Pomoc dotycząca instalacji systemu
OjFelipes
Posty: 47
Rejestracja: 19 kwietnia 2009, 19:54

Takie przeniesienie systemu?

Post autor: OjFelipes »

Cześć.
Zastanawiam się już jakiś czas nad takim o to przeniesieniem istniejącego systemu:

Na działającym komputerze:
  1. Tworzę listę zainstalowanych pakietów.
  2. Następnie kopię danych.
Na nowym komputerze
  1. Instaluję czysty system.
  2. Instaluję pakiety z listy.
  3. Wgrywam dane.
Czy ktoś już w praktyce wypróbował taki schemat?
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

OjFelipes, przejrzyj forum.
http://debian.linux.pl/viewtopic.php?p=40117#40117

Zajrzyj do:
Debian Reference

Opis
Efekt opisu

Podobne tematy:

http://debian.linux.pl/viewtopic.php?p=46474#46474
http://debian.linux.pl/viewtopic.php?t=6840

Zaczynając od pierwszego odnośnika, na stronie głównej forum:

Dla Początkujących

Znajdziemy bardzo dużo pożytecznych informacji. Czas potrzebny do znalezienia powyższych, porównywalny z parzeniem herbaty.
ArnVaker

Post autor: ArnVaker »

fnmirk, a jak się ma ten sposób do statusu pakietów (zainstalowane ręcznie, automatycznie)? Czy wszystkie pakiety będą miały status zainstalowanych ręcznie?

Jeżeli tak, to powstanie kłopot z zachowaniem porządku w systemie przy ich ewentualnym usuwaniu. Trudno będzie "wyłapać" wszystkie pakiety, które nie są już potrzebne.

Czy nie lepiej byłoby do odtworzenia systemu użyć listy pakietów, która nie uwzględnia tych automatycznie zainstalowanych? Można ją uzyskać na przykład tak:

Kod: Zaznacz cały

aptitude search ~i | grep -vE '^i A' | awk '{print $2}' > lista
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

Pakiety instalujesz bezpośrednio z serwerów. Instalacja przebiega w sposób tradycyjny.
Jeżeli pakietów jest dużo do instalacji to dobrze jest mieć kompletną kopię katalogu /var/cache/apt/archives, wtedy przyspieszasz instalację. Pakiety posiadane lokalnie ulegają weryfikacji. Tak jak przy normalnej instalacji.
ArnVaker

Post autor: ArnVaker »

To co napisałeś nie ma kompletnie żadnego związku z tym o co pytałem.

Przedstawię jaśniej na przykładzie OpenOffice:

Kod: Zaznacz cały

# aptitude search ~i |grep openoffice
i   openoffice.org                  - full-featured office productivity suite   
i A openoffice.org-base             - full-featured office productivity suite --
i A openoffice.org-base-core        - full-featured office productivity suite --
i A openoffice.org-calc             - full-featured office productivity suite --
i A openoffice.org-common           - full-featured office productivity suite --
i A openoffice.org-core             - full-featured office productivity suite --
i A openoffice.org-draw             - full-featured office productivity suite --
i A openoffice.org-filter-mobiledev - full-featured office productivity suite --
i A openoffice.org-impress          - full-featured office productivity suite --
i A openoffice.org-java-common      - full-featured office productivity suite --
i   openoffice.org-l10n-pl          - full-featured office productivity suite --
i A openoffice.org-math             - full-featured office productivity suite --
i A openoffice.org-officebean       - full-featured office productivity suite --
i A openoffice.org-report-builder-b - OpenOffice.org extension for building data
i A openoffice.org-style-galaxy     - full-featured office productivity suite --
i A openoffice.org-writer           - full-featured office productivity suite --
Pakiety z literką "A" zostały zainstalowane automatycznie jako zależności bezpośrednio wskazanego pakietu. Po odtworzeniu systemu Twoim sposobem wszystkie pakiety prawdopodobnie będą miały status zainstalowanych ręcznie (czyli taki jak te bez literki "A").

Problem pojawi się przy ich usuwaniu. W tej chwili wystarczy:

Kod: Zaznacz cały

aptitude remove openoffice.org openoffice.org-l10n-pl
A w przypadku apt-get:

Kod: Zaznacz cały

apt-get remove openoffice.org openoffice.org-l10n-pl
po czym:

Kod: Zaznacz cały

apt-get autoremove
W ten sposób pozbędziemy się wszystkich powyższych pakietów oraz ich zależności (niewymaganych przez inne zainstalowane pakiety).

Kod: Zaznacz cały

# aptitude remove openoffice.org openoffice.org-l10n-pl -s
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Reading extended state information      
Initializing package states... Done
Reading task descriptions... Done  
The following packages will be REMOVED:
  libcolamd2.7.1{u} libcommons-beanutils-java{u} libcommons-collections3-java{u} libcommons-digester-java{u} libcommons-logging-java{u} libdb-je-java{u} libdb4.6-java{u} libhsqldb-java{u} libhyphen0{u} libjaxp1.3-java{u} libjline-java{u} libjtidy-java{u} liblucene2-java{u} libmysqlclient16{u} libneon27{u} libpq5{u} libraptor1{u} librasqal1{u} librdf0{u} libregexp-java{u} libservlet2.4-java{u} libwpd8c2a{u} libwpg-0.1-1{u} libwps-0.1-1{u} lp-solve{u} mysql-common{u} openoffice.org openoffice.org-base{u} openoffice.org-base-core{u} openoffice.org-calc{u} openoffice.org-common{u} openoffice.org-core{u} openoffice.org-draw{u} openoffice.org-filter-mobiledev{u} openoffice.org-impress{u} openoffice.org-java-common{u} openoffice.org-l10n-pl openoffice.org-math{u} openoffice.org-officebean{u} openoffice.org-report-builder-bin{u} openoffice.org-style-galaxy{u} openoffice.org-writer{u} ttf-opensymbol{u} uno-libs3{u} ure{u} 
0 packages upgraded, 0 newly installed, 45 to remove and 0 not upgraded.
Need to get 0B of archives. After unpacking 304MB will be freed.
Do you want to continue? [Y/n/?] 
Would download/install/remove packages.
Po odtworzeniu systemu Twoim sposobem nie będzie to możliwe. Trzeba byłoby wskazywać każdy ze zbędnych (powyższych) pakietów bezpośrednio, ponieważ każdy z nich będzie miał status zainstalowanego ręcznie. ¯yczę powodzenia w odnajdywaniu ich...
OjFelipes
Posty: 47
Rejestracja: 19 kwietnia 2009, 19:54

Post autor: OjFelipes »

ArnVaker pisze:Czy nie lepiej byłoby do odtworzenia systemu użyć listy pakietów, która nie uwzględnia tych automatycznie zainstalowanych? Można ją uzyskać na przykład tak:

Kod: Zaznacz cały

aptitude search ~i | grep -vE '^i A' | awk '{print $2}' > lista
A jak potem użyć tej listy? Analogicznie, czyli

Kod: Zaznacz cały

debconf-set-selections < lista
?
ArnVaker

Post autor: ArnVaker »

Utworzenie listy zainstalowanych pakietów, nieobejmującej zainstalowanych automatycznie:

Kod: Zaznacz cały

aptitude search --disable-columns ~i | grep -vE '^i.A' | awk '{print $2}' > lista
Dodałem opcję --disable-columns, ponieważ poprzednie polecenie ucinało końcówkę nazwy pakietu, jeżeli jego nazwa była dłuższa niż 30 znaków. Teraz jest w porządku.

Po instalacji nowego systemu (najlepiej zainstalować wyłącznie system podstawowy):
  1. Aktualizacja systemu z dodanymi takimi jak wcześniej repozytoriami:

    Kod: Zaznacz cały

    aptitude update && aptitude safe-upgrade && aptitude full-upgrade
  2. Instalacja pakietów z listy:

    Kod: Zaznacz cały

    aptitude install $(cat lista)
Wszystkie zależności pakietów z listy zostaną zainstalowane automatycznie.
Awatar użytkownika
czarownik
Beginner
Posty: 240
Rejestracja: 22 maja 2009, 17:23

Post autor: czarownik »

ArnVaker pisze:Utworzenie listy zainstalowanych pakietów, nieobejmującej zainstalowanych automatycznie:
Witam czyli po odtworzeniu listy pakiety zostaną one doinstalowane automatycznie. ?

[ Dodano: 2009-10-07, 17:07 ]
ArnVaker pisze:Utworzenie listy zainstalowanych pakietów, nieobejmującej zainstalowanych automatycznie:

Kod: Zaznacz cały

aptitude search --disable-columns ~i | grep -vE '^i.A' | awk '{print $2}' > lista
Mam pytanie, chciałem sobie przetestować twój sposób, wyedytowałem sobie plik który utworzyłem i mam coś takiego,

Kod: Zaznacz cały

0.4.4
aptitude
[opcje]
(jeśli

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-


Ten
Symualcja
Pobranie
Pytanie
Przyjęcie
format
order
width
Agresywne
Wyświetlanie
Wyświetlanie
Wyświetlanie
Wyświetlanie
[wydanie]
Wyłączenie
nazwa=wartość
Czy
zależności
fname
:
Przeprowadzenie

aptitude
Chyba coś nie tak bo nie widzę żadnych zależności
ArnVaker

Post autor: ArnVaker »

czarownik pisze:Witam czyli po odtworzeniu listy pakiety zostaną one doinstalowane automatycznie?
ArnVaker pisze:Wszystkie zależności pakietów z listy zostaną zainstalowane automatycznie.
Właśnie o to chodzi, żeby pakiety które obecnie zostały zainstalowane automatycznie, również zostały zainstalowane automatycznie na nowym systemie.
czarownik pisze:Chyba coś nie tak bo nie widzę żadnych zależności
To ma być lista pakietów ze statusem "zainstalowany ręcznie", o wszystkie zależności zatroszczy się aptitude i zainstaluje je automatycznie (jak pisałem, o to właśnie chodzi).

Co do wyniku samego polecenia, to musiałeś zrobić jakiś błąd podczas jego przepisywania.
U mnie utworzony w jego wyniku plik "lista" wygląda tak:

Kod: Zaznacz cały

acpi
acpi-support-base
acpid
adduser
alacarte
alsa-base
alsa-utils
apt
apt-show-versions
apt-utils
aptitude
base-files
base-passwd
bash
bsdmainutils
bsdutils
build-essential
busybox
compiz
compiz-fusion-plugins-extra
compiz-fusion-plugins-main
compiz-fusion-plugins-unsupported
compizconfig-backend-gconf
compizconfig-settings-manager
conky
console-common
console-data
console-tools
coreutils
cpio
cron
dash
debconf
debconf-i18n
debian-archive-keyring
debianutils
deborphan
dhcp3-client
dhcp3-common
dmidecode
dmz-cursor-theme
dpkg
dvd+rw-tools
e2fslibs
e2fsprogs
ed
eject
evince
file-roller
findutils
flashplugin-nonfree
fusion-icon
gamin
gcalctool
gcc-4.2-base
gcc-4.3-base
gcc-4.4-base
gconf-editor
gdm
gdm-themes
gnome-core
gnome-media
gnome-mount
gnome-power-manager
gnome-screensaver
gnome-system-monitor
gnome-system-tools
gnome-utils
gnupg
gparted
gpgv
grep
groff-base
grub-common
grub-legacy
gstreamer0.10-ffmpeg
gthumb
gtk2-engines
gtk2-engines-pixbuf
gzip
hostname
htop
ia32-libs-gtk
iceweasel
iceweasel-l10n-pl
ifupdown
info
initramfs-tools
initscripts
insserv
install-info
installation-report
iproute
iptables
iputils-ping
k3b
kadu
kadu-common
kadu-themes
less
libacl1
libattr1
libblkid1
libbz2-1.0
libc-bin
libc6
libcomerr2
libconsole
libcwidget3
libdb4.7
libdevmapper1.02.1
libept0
libgcc1
libgcrypt11
libgdbm3
libgnutls26
libgpg-error0
liblocale-gettext-perl
libncurses5
libncursesw5
libnewt0.52
libpam-modules
libpam-runtime
libpam0g
libpopt0
libreadline5
libsasl2-2
libselinux1
libsepol1
libsigc++-2.0-0c2a
libslang2
libss2
libssl0.9.8
libstdc++6
libtasn1-3
libtext-charwidth-perl
libtext-iconv-perl
libtext-wrapi18n-perl
libusb-0.1-4
libuuid1
libvolume-id1
libwrap0
libxapian15
linux-headers-2.6-sidux-amd64
linux-headers-2.6.30-2-amd64
linux-image-2.6-sidux-amd64
linux-image-2.6.30-2-amd64
locales
login
logrotate
lsb-base
lsb-release
lzma
makedev
man-db
manpages
mawk
menu
moc
module-assistant
module-init-tools
mount
myspell-pl
nano
ncurses-base
ncurses-bin
net-tools
netbase
netcat-traditional
ntfsprogs
ntp
nvidia-glx
nvidia-kernel-2.6.30-2-amd64
nvidia-kernel-2.6.31-2.slh.1-sidux-amd64
nvidia-kernel-source
nvidia-settings
openarena
openoffice.org
openoffice.org-l10n-pl
opera
passwd
perl-base
pm-utils
procps
qt3-qtconfig
qt4-qtconfig
readline-common
reiserfsprogs
rsyslog
sed
sensible-utils
skype
smplayer
smplayer-translations
sun-java6-plugin
synaptic
sysv-rc
sysv-rc-conf
sysvinit
sysvinit-utils
tar
tasksel
tasksel-data
testdisk
totem
traceroute
ttf-mscorefonts-installer
tzdata
unrar
unzip
usbutils
util-linux
vim-common
vim-tiny
virtualbox-3.0
w64codecs
wget
whiptail
wine-unstable
xbase-clients
xserver-xorg
yakuake
zlib1g
Po zainstalowaniu i zaktualizowaniu nowego (czystego) systemu wystarczy skopiować plik "lista" do dowolnego katalogu, na przykład /root i wydać polecenie:

Kod: Zaznacz cały

aptitude install $(cat /root/lista)
Lub przejść najpierw do zawierającego listę katalogu:

Kod: Zaznacz cały

cd /root
aptitude install $(cat lista)
Zainstalowane zostaną wszystkie pakiety z listy oraz ich zależności.
Awatar użytkownika
czarownik
Beginner
Posty: 240
Rejestracja: 22 maja 2009, 17:23

Post autor: czarownik »

Dla pewności sprawdziłemna drugim serwerze i działa porawnie, tylko jak dodałem opcję

Kod: Zaznacz cały

--disable-columns
pojawia się błąd

Kod: Zaznacz cały

nieznana opcja `--disable-columns'
ODPOWIEDZ