Обновляем с помощью apt SuSE 9.1 на 9.2 или 9.3 | Версия для печати |
Буду рад любым толковым замечаниям и предложениям об улучшении. su - < passwd > Шаг 2: сохраним актуальную конфигурацию apt (если она есть) cd etc tar cvzf myApt-conf-9.1.tar.gz apt/* Шаг 3: делаем временную директорию для сохранения различной информации cd /root mkdir update cd update Шаг 4: сохраним актуальный список установленых пакетов rpm -qa | sort > myAktRPMs-9.1 Шаг 5: сохраним актуальный apt.log и взамен него начнем новый mv /var/log/apt.log apt-9.1.log touch /var/log/apt.log Шаг 6: Правим /etc/apt/sources.list и /etc/apt/security.list для 9.2 репозитария. Проверьте актуальные пути на странице Дополнения sources.list можно глянуть на /sources.list.FTP Вот Вам пример как должен быть выглядеть sources.list: rpm SuSE/9.2-i386 base Совет: деактивируйте kernel-of-the-day, чтобы проинсталлировалось стандартное ядро для 9.2 (см. Ниже Шаг 7). У кого в /etc/sources.list есть другие конфигурации, их следует также обновить для 9.2 версии Шаг 7: В файле /etc/apt/apt.conf.d/apt.conf опцию Hold для kernel деактивируем RPM { Hold { "kernel-default"; }; изменить на // Hold { "kernel-default"; }; ... } Естественно, кто использует другое ядро, в этой строчке надо подставить нужное (Напр: kernel-default-smp) Шаг 8: Правим файл /etc/apt/preferences : Удаляем все предыдущие настройки /etc/apt/preferences. Если этого файла вообще нет, его нужно создать. Теперь вставим в него: Package: * Pin: release v=9.2 Pin-Priority: 1001 Это мы делаем для того, чтобы в случае одинаковых версий пакетов, тянулись пакеты из 9.2 репозитария. Непонятно немножко... К примеру, у нас установлен самый актуальный пакет. Если не провести вышеуказанную настройку, то он не обновится и в нем будет стоять метка 9.1. Система будет неконсистентна. К сожалению эта метка присутствует не во всех пакетах, поэтому иногда приходится дорабатывать... Шаг 9: Чтобы пакеты для update на 9.2 не слились в старую Cache-директорию для 9.1, изменяем /etc/apt/apt.conf.d/apt.conf в секции Dir "/" { } // Directory layout Dir "/" { // Location of the state dir State "local/state/apt/" { lists "lists-9.2/"; status "/local/status"; ... }; // Location of the cache dir Cache "local/cache/apt/" { archives "archives-9.2/"; srcpkgcache "srcpkgcache-9.2.bin"; pkgcache "pkgcache-9.2.bin"; }; ... }; Шаг 10: Создаем новые директории для Cache. mkdir -p /local/state/apt/lists-9.2/partial mkdir -p /local/cache/apt/archives-9.2/partial touch /local/state/apt/lists-9.2/lock touch /local/cache/apt/archives-9.2/lock Таким образом мы закончили настройку apt и теперь можем перейти к инсталляции. Шаг 11: Заполняем apt-Репозитарий apt update Если вылазят ошибки, идем к первому пункту и внимательно еще раз все проверяем. Шаг 12: Посмотрим что установится и сохраним в отдельный файл apt -s dist-upgrade | tee upgrade.txt Файл upgrade.txt будет выглядеть примерно так: Building Dependency Tree... The following packages will be upgraded 3ddiag BitTornado CheckHardware DirectFB GTorrentViewer ImageMagick MPlayer OpenOffice_org OpenOffice_org-de OpenOffice_org-de-templates SDL SDL-devel SDL_image SDL_image-devel SDL_mixer SDL_net SDL_sound SDL_ttf SDLmm SDLmm-devel a2ps aaa_base aaa_skel aalib aalib-devel acl afio apollon apt-file apt-iselect apt-smartclean apt4rpm arc ash aspell at attr audiofile autoyast2-installation avifile avifile-qt awesfx bash bc bchunk bin86 binutils bison bitstream-vera blt bluez-libs bonobo bootsplash bootsplash-theme-SuSE bzip2 cabextract ccd2iso cdk cdparanoia cdrdao chaplin checkinstall clanlib clanlib-devel colorgcc compat control-center coreutils cpdvd cpio cpp cpvts cracklib cron ctags cups-client cups-drivers cups-libs curl curl-devel cvs cyrus-imapd cyrus-sasl cyrus-sasl-plain dar db db-devel db-utils db1 db41 dbh ddclient ddd ddrescue deb desktop-data-SuSE device-mapper devs dhcpcd dialog diffutils dirsync distcc docbook-dsssl-stylesheets docbook-toys docbook-utils docbook-xml-website docbook-xsl-stylesheets docbook_3 docbook_4 dos2unix dosbootdisk dosfstools doxygen e2fsprogs e2fsprogs-devel eazy eject enscript esound esound-devel ethtool evms expat faad2 fam fam-devel fbset fetchmail fftw fftw3 file filesystem fillup findutils finger flac flac-devel flash-player flex fontconfig fontconfig-devel foomatic-filters fping freeglut freeglut-devel freetype freetype2 freetype2-devel fribidi ftp fvwm2 gail gail-devel gal gawk gcc gcc-c++ gconf gconf2 gdb gdbm gdbm-devel gdk-pixbuf gettext ghostscript-fonts-other ghostscript-fonts-std ghostscript-library ghostscript-x11 giFT giFT-FastTrack giFT-openft gle glib glib-devel glibc glibc-devel glibc-html glibc-locale gnokii gnome-desktop gnome-filesystem gnome-icon-theme gnome-keyring gnome-libs gnome-libs-devel gnome-mime-data gnome-print gnome-vfs2 gpg gpm graphviz grep groff grub gtk gtk-devel gtk-xfce-engine gtkglarea gtkhtml-devel gtkmm gtkmm-devel guile gv gxine gxmhtml gzip hdparm heimdal-lib help2man hermes hotplug htdig html-dtd html2txt htop hwinfo hwinfo-devel id3lib id3lib-devel ifnteuro imap-lib imediff2 imlib imlib-devel imwheel indent info info2html initviocons insserv intlfnts iproute2 iptables iptables-devel iputils irssi isapnp iselect iso_ent itcl iwidgets jack jack-devel jta-javadoc kaffeine kalbum kbd kbear kconfigure kdocker kfile_torrent kim kinternet kio-apt kmenc15 krename krpmbuilder ksymoops kwatch kwavencoder kxmleditor ladspa latex2html-pngicons ldapcpplib less lha libacl libattr libavc1394 libbonobo libbonoboui libcap libdar libdar-devel libdvdread libdvdread-devel libexif libgcc libgcj libghttp libgiFT libgimpprint libglade libglade-devel libglade2 libglade2-devel libgnome libgnomecanvas libgnomeprint libgnomeprintui libgnomeui libgpg-error libgphoto2 libgtkhtml libidl libidl-devel libidn libidn-devel libieee1284 libjasper libjpeg liblcms liblcms-devel libmal libmcal libmcrypt libmcrypt-devel libmikmod libmng libmng-devel libmpeg2 libmpeg3 libnetpbm libofx libpcap libpng libpng-devel libquicktime libraw1394 libsamplerate libselinux libsigc++ libsigc++-devel libsndfile libsndfile-devel libstdc++ libstdc++-devel libstroke libtiff libunicode libusb libwmf libxcrypt libxfce4mcs libxfce4mcs-devel libxfce4util libxfce4util-devel libxfcegui4 libxfcegui4-devel libxml libxml-devel liby2util libzvt libzvt-devel linc linc-devel linux-atm linux-atm-lib lirc listexec logrotate lsof lua lua-devel lvm2 lzo lzo-devel mad mad-devel mailx make man man-pages mc mdadm metacity mhash mingetty mjpegtools mkinitrd mktemp mkvtoolnix mm module-init-tools mpglen mrtg mtools myspell-german mysql-shared nasm ncurses ncurses-devel net-snmp net-tools netcat netcfg netpbm newt newt-devel nfs-utils normalize nss_ldap ntfsprogs oaf openjade openldap2-client openmotif openmotif-libs openslp opensp openssh openssh-askpass openssl openssl-devel orbit orbit-devel orbit2 orbit2-devel pam pam-devel pam-modules pam_ldap pango pango-devel parted parted-devel patch patchutils pciutils pcre pcre-devel pcsc-lite perl perl-Archive-Tar perl-Archive-Zip perl-Bit-Vector perl-Compress-Zlib perl-Config-Crontab perl-Config-General perl-Config-IniFiles perl-Convert-TNEF perl-Convert-UUlib perl-Curses perl-Cyrus-IMAP perl-Cyrus-SIEVE-managesieve perl-Date-Calc perl-Digest-HMAC perl-Digest-SHA1 perl-File-MMagic perl-File-Tail perl-GD perl-Gtk-Perl perl-HTML-Parser perl-HTML-Tagset perl-HTML-Template perl-IO-stringy perl-Inline perl-MIME-tools perl-MailTools perl-Net-DNS perl-Net-Server perl-Net_SSLeay perl-PDA-Pilot perl-Parse-RecDescent perl-SGMLS perl-SNMP perl-TermReadKey perl-TimeDate perl-Tk perl-URI perl-Unix-Syslog perl-XML-LibXML perl-XML-Parser perl-XML-Writer perl-cpan2rpm perl-gettext perl-libapt-pkg perl-libconfigfile perl-libwww-perl perl-spamassassin permissions pgmfindclip pilot-link pkgconfig popt popt-devel portmap postfix postgresql-libs powertweak ppp pptp procinfo procmail procps providers psmisc pvm pvm-devel pwdutils python python-curses python-devel python-gtk python-numeric python-pygame python-tk python-wxGTK python-xml pyxml qt3 qt3-devel qt3-devel-doc qt3-non-mt qvcd qvcdgear raidtools rcs readline readline-devel recode reiserfs release-notes resmgr ripmake rpm rpm-devel rpm-python rpmkey-suser-scorot rrdtool rsh rsync sablot sash sax2 sax2-ident sax2-tools scpm screen scrollkeeper scsi sed sensors setserial sgml-skel shared-mime-info sharutils siga sitar slang slang-devel slib smpeg smpppd sox spamassassin sqlite sqlite-devel squid src_vipa startup-notification strace submount sudo superkaramba suse-build-key suse-release susehelp susehelp_de suselinux-adminguide_de-pdf swig synaptic sysconfig syslinux syslogd sysvinit t1lib tarfix tcl tcl-devel tcpd tcpdump tcsh telnet telnet-server terminfo texinfo tidy tightvnc timezone tix tk tkxcd tleds toolame torrentsniff tovid txt2man txt2regex udev unace unarj unclutter unixODBC unixODBC-devel unzip update-desktop-files upx usbutils utempter util-linux uudeview vcdgear vim vorbis-tools w3m w3m-inline-image wbumount webalizer wget whois wvdial wvstreams wxGTK wxGTK-compat wxGTK-devel wxGTK-gl xanim xaw3d xbanner xchat xdg-menu xdmbgrd xf86tools xfcalendar xfce-mcs-manager xfce-mcs-manager-devel xfce-mcs-plugins xfce-utils xfce4-appfinder xfce4-icon-theme xfce4-iconbox xfce4-mixer xfce4-panel xfce4-session xfce4-session-devel xfce4-session-engines xfce4-systray xfce4-toys xfce4-trigger-launcher xfdesktop xffm xfprint xfsprogs xfwm4 xfwm4-themes xinetd xlockmore xmlcharent xmms xmms-lib xntp xorg-x11 xorg-x11-Mesa xorg-x11-Mesa-devel xorg-x11-Xvnc xorg-x11-devel xorg-x11-driver-options xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-fonts-scalable xorg-x11-libs xorg-x11-man xorg-x11-server xorg-x11-server-glx xscreensaver xtermset yast2 yast2-backup yast2-bootloader yast2-control-center yast2-core yast2-country yast2-inetd yast2-installation yast2-ldap yast2-ldap-client yast2-mail yast2-mail-aliases yast2-mouse yast2-ncurses yast2-network yast2-nfs-client yast2-nfs-server yast2-nis-client yast2-nis-server yast2-online-update yast2-packagemanager yast2-packager yast2-pam yast2-perl-bindings yast2-powertweak yast2-printer yast2-profile-manager yast2-qt yast2-restore yast2-runlevel yast2-scanner yast2-security yast2-storage yast2-support yast2-sysconfig yast2-theme-SuSELinux yast2-trans-de yast2-transfer yast2-tune yast2-update yast2-users yast2-x11 yast2-xml yp-tools ypbind zip ziptool zisofs-tools zlib zlib-devel zoo zsh The following packages will be REPLACED: java2 (by java-1_4_2-sun-devel) java2-jre (by java-1_4_2-sun) libungif (by giflib) par (by par2cmdline) The following NEW packages will be installed: OpenEXR SuSEfirewall2 boehm-gc compat-readline4 dirmngr ed fonts-config giflib gpg2 gpgme jadetex java-1_4_2-sun java-1_4_2-sun-devel latex-ucs libexif5 libgcrypt libgnomecups libksba libmspack libnscd libtunepimp libzio openct opensc par2cmdline perl-BerkeleyDB pinentry te_etex te_latex te_pdf tetex update-alternatives xsu yast2-firewall The following packages have been kept back ImageMagick-devel kernel-default m4 The following packages will be DOWNGRADED a52dec acroread ajcore ajcore-gui alsa alsa-devel alsa-tools amavisd-new apache2 apt apt-devel apt-libs apt-server atk atk-devel awstats bash-completion bind cdrecord cdrecord-devel cutter d4x divx4linux fame ffmpeg gd gd-devel gdome2 gdome2-devel glib2 glib2-devel gmp gtk2 gtk2-devel guarddog imlib2 imlib2-devel jpackage-utils kdebase3 kdebase3-kdm kdebase3-ksysguardd kdegraphics3 kdegraphics3-imaging kdegraphics3-kamera kdelibs3 kdemultimedia3-jukebox kdepim3 kdepim3-devel kdepim3-kpilot kdepim3-organizer kdepim3-sync kdepim3-time-management kdevelop3 lame libao libart_lgpl libart_lgpl-devel libcddb libcddb-devel libcdio libcdio-devel libdv libfame libffmpeg0 libffmpeg0-devel libnet libogg libogg-devel libsmbclient libtheora libtheora-devel libtool libvcd libvcd-devel libvorbis libvorbis-devel libxine1 libxine1-devel libxine1-sdl libxine1-syncfb libxml2 libxml2-devel libxml2-python libxslt libxslt-devel libxslt-python lve mkisofs mpgtx multitail nmap ogmtools perl-XML-GDOME perl-XML-LibXML-Common perl-XML-NamespaceSupport perl-XML-SAX php4-bcmath php4-bz2 php4-calendar php4-ctype php4-curl php4-dbase php4-domxml php4-exif php4-filepro php4-ftp php4-gd php4-gettext php4-gmp php4-iconv php4-imap php4-ldap php4-mbstring php4-mcal php4-mcrypt php4-mhash php4-mime_magic php4-mysql php4-pgsql php4-qtdom php4-session php4-shmop php4-snmp php4-sockets php4-swf php4-sysvsem php4-sysvshm php4-unixODBC php4-wddx php4-xslt php4-yp php4-zlib rar rpmkey-packman rpmlint samba-client sarg schafkopf speex subtitleripper transcode vcdimager vsftpd w32codec-all xine-skins xine-ui xvid xvid-devel 720 upgraded, 34 newly installed, 148 downgraded, 4 replaced, 0 removed and 3 not upgraded. Шаг 13: Теперь создадим небольшой shell-Script myUpgrade. С помощю этого скрипта производится download и update Вот так он должен выглядеть: #!/bin/bash apt --test install \ <Все пакеты из "The following packages will be upgraded:"> <Все пакеты из "The following NEW packages will be installed:"> <Все пакеты из "The following packages will be DOWNGRADED"> <Все пакеты из "The following packages have been kept back"> Эту информацию мы можем взять из предусмотрительно созданного файла upgrade.txt. В конце этого списка сделаем небольшое добавление: kernel-default java-1_4_2-sun-plugin (владельцы других ядер, не забыли, что я говорил выше?) Кто еще использует inetd должен перейти на xinetd и с inetd- деинсталлировать старую версию - в 9.2 ее уже нет. Шаг 14: Все пакеты из секции "The following packages will be REPLACED" в myUpgrade дополним знаком "-": java2- libungif- par- ... сие означает, что эти пакеты перед инсталляцией новых будут деинсталлированы. The following packages will be REPLACED: java2 (by java-1_4_2-sun-devel) java2-jre (by java-1_4_2-sun) libungif (by giflib) par (by par2cmdline) Шаг 15: В SuSE 9.2 изменилось поведение Java. Чтобы browser Firefox и Mozilla могли и дальше работать с Java, нам понадобится RPM java-1_4_2-sun-plugin. В скрипт myUpgrade вконце добавим java-1_4_2-sun-plugin. Место для инсталляции OpenOffice было также изменено с /opt/OpenOffice.org на /usr/lib/ooo-1.1. Чтобы наш актуальный оффис смог и дальше работать надо сделать символический линк в /usr/lib: cd /usr/lib ln -s /opt/OpenOffice.org ooo-1.1 Шаг 17: Сохраняем myUpgrade и деалем его исполняемым chmod +x myUpgrade Шаг 18: Запускаем myUpgrade ./myUpgrade Если вылезают ошибки насчет зависимостей, "виновников" надо будет стереть вручную: rpm -e --nodeps <пакет, вызывающий ошибку> И запустить ./myUpgrade еще раз. Редко, но случаются странные зависимости друг на друга "порочный круг:)". Чаще всего виновата кривая сборка пакета. Данную процедуру повторять до тех пор, пока не останется ни одной ошибки. Вот например вывод моего первого прохода: libcurl.so.2 is needed by (installed) php4-curl-4.3.10-0.1 libcurl.so.2 is needed by (installed) xine-ui-0.99.3-0.pm.0 liblber.so.199 is needed by (installed) bind-9.3.0-2.1 liblber.so.199 is needed by (installed) kdebase3-3.3.2-7 liblber.so.199 is needed by (installed) apache2-2.0.52-5.1 liblber.so.199 is needed by (installed) libsmbclient-3.0.10-0.1 liblber.so.199 is needed by (installed) php4-ldap-4.3.10-0.1 liblber.so.199 is needed by (installed) samba-client-3.0.10-0.1 libldap.so.199 is needed by (installed) bind-9.3.0-2.1 libldap.so.199 is needed by (installed) kdebase3-3.3.2-7 libldap.so.199 is needed by (installed) apache2-2.0.52-5.1 libldap.so.199 is needed by (installed) libsmbclient-3.0.10-0.1 libldap.so.199 is needed by (installed) php4-ldap-4.3.10-0.1 libldap.so.199 is needed by (installed) samba-client-3.0.10-0.1 m4 = 1.4o is needed by (installed) autoconf-2.59-79 libmpeg3.so is needed by (installed) transcode-0.6.14-0.pm.0 А вот решение: 1.) libcurl.so.2 не дает нам установить пакеты php4-curl и xine-ui fest, оба пакета имейут в SuSE-9.1 и SuSE-9.2 одинаковые версии. xine-ui не так уж важен, чтобы истема заработала, поэтому я его могу стереть: rpm -e xine-ui xine-skins С пакетами php4-curl и php4-ldap поступаем точно также rpm -e php4-curl php4-ldap Ничего страшного, при полном Update они будут проинсталлированы заново. 2.) apt policy libmpeg3 выдает: libmpeg3: Installed: 1.5-411 Candidate: 1.5.4-4 Version Table: 1.5.4-4 0 1001 SuSE/9.2-i386/base pkglist *** 1.5-411 0 100 RPM Database Тут мы видим, что уже проинсталлированая версия новей, чем пакет в SuSE-9.2. Значит мы должны немного подправить в скрипте myUpgrade: libmpeg3=1.5.4-4 3.) apt policy autoconf выдает: autoconf: Installed: 2.59-79 Candidate: 2.59-79 Version Table: *** 2.59-79 0 1001 SuSE/9.2-i386/kde pkglist 100 RPM Database 2.59-78 0 1001 SuSE/9.2-i386/base pkglist Проинсталлированый autoconf имеет одинаковую версию с тем, что идет с 9.2, но в RPM ничего не написано о версии SuSE, для которой он был собран. Поэтому, чтобы проинсталлировать autoconf версию из Repository base, Поэтому, чтобы проинсталлировать autoconf версию из Repository base, проинсталлируем 2.59-7, этого можно достичь путем изменения версии autoconf=2.59-78 -пишем в скрипт myUpgrade. 4.) Пакет bind разделен на много маленьких кусков. Т.к. проинсталлированая версия идентична bind identisch с SuSE-9.2, делаем downgrade пакета на имеющуюся в base-Repository версию 9.2.4-3.2.: autoconf=2.59-78 apt policy bind bind: Installed: 9.3.0-2.1 Candidate: 9.3.0-2.1 Version Table: *** 9.3.0-2.1 0 100 RPM Database 9.3.0-2.1 0 1001 SuSE/9.2-i386/suse-people pkglist 9.3.0-0.1 0 1001 SuSE/9.2-i386/suse-people pkglist 9.2.4-3.2 0 1001 SuSE/9.2-i386/base pkglist В скрипт myUpgrade мы изменяем или добавляем: bind=9.2.4-3.2 bind-utils=9.2.4-3.2 bind-libs=9.2.4-3.2 5.) Изменяем libsmbclient и samba-client (выбираем пакеты из Repository base, а не из suse-projects): libsmbclient=3.0.9-2.1 samba-client=3.0.9-2.1 6.) Для apache2 выберем: apache2=2.0.50-7.3 и должны выбрать apache2-prefork=2.0.50-7.3 и добавить libapr0=2.0.50-7.3 (т.к. здесь впервые будут использоватся пакеты из base) 7.) последнии три зависимости были из за неустановленного пакета liblber.so.199 и libldap.so.199 для решении этой проблеммы можно воспользоватся так называемым "Виртуальным RPM". Для того, чтобы его создать, воспользуйтесь следующим скриптом: #!/bin/sh # Examples: # ./mkvirtualrpm.sh glibc python db3 XFree86-libs zlib mysql postgresql # ./mkvirtualrpm.sh /bin/csh # ./mkvirtualrpm.sh libstdc++-2.96-98 # ./mkvirtualrpm.sh /usr/bin/env if [ -z "$1" ]; then echo "usage: $0 Затем создаем "Виртуальный RPM" ./myVirtualRPM libmpeg3.so libldap.so.199 liblber.so.199 и проинсталлируем их через rpm. Еще раз изменения в myUpgrade: autoconf=2.59-78 \ libsmbclient=3.0.9-2.1 samba-client=3.0.9-2.1 \ bind=9.2.4-3.2 bind-libs=9.2.4-3.2 bind-utils=9.2.4-3.2 \ apache2=2.0.50-7.3 apache2-prefork=2.0.50-7.3 libapr0=2.0.50-7.3 \ libmpeg3=1.5.4-4 Иногда, там где пакету ABC непременно нужна библиотека libXXX.so.4, а другой пакет также страстно ее восжелал, мы можем сделать fake-параметр в конфигурации обеих пакетов, чтобы они требовали нужную библиотеку в /etc/apt/apt.conf.d/apt.conf Например так: RPM { ... Fake-Provides { "rpmlib(PartialHardlinkSets) 4.0.4-1"; "libjasper 1.701"; }; ... }; Таким образом мы оворим системе, что пакет libjasper версии 1.701 и программа rpmlib (PartialHardlinkSets) версии 4.0.4-1 уже проинсталлирована. Такие решения скорей исключения из правил, но всяко бывает... Источиком многих ошибок служит sources.list. Если там закомментированы Repositories то может случится так, что apt не будет видеть некоторые пакеты, впрочем наоборот бывает тоже. Оставьте в sources.list необходимый минимум, когда система уже установлена, можно экспереминтировать с бОльшим комфортом. Когда срипт myUpgrade сделает проход без ошибок, самое трудное уже позади:) На выводе мы можем тогда увидеть следующее: .... 720 upgraded, 36 newly installed, 144 downgraded, 4 replaced, 2 removed and 0 not upgraded. Need to get 785MB/785MB of archives. After unpacking 10.2MB of additional disk space will be used. Do you want to continue? [Y/n] Вздохнем поглубже и нажмем буковку Y, должен начатся download пакетов... Шаг 19: Сеичас можете занятся чем нибудь другим, попить кофейку, пообедать или прикорнуть, пока компьютер будет пожирать мегабайты из сети:). Шаг 20: Когда download закончится, надо проeдитировать скрипт myUpgrade и опцию --test поменять на --force apt --test install \ ==> [quote title=Цитата:]apt --force install \ ############################################################ ####################### Внимание! Здесь мы доходим до point-of-no-return, когда rpm начнет апдайтить пакеты, компютер нельзя ни в коем случае прерывать или выключать, если не хотите ставить систему с нуля!!! Можно конечно восстановить порушенное, но трудов это займет, поверте... Так, я Вас предупредил? Ну и ладушки, поехали дальше:) ############################################################ ####################### Шаг 21: стартуем измененный в Шаг 20 скрипт myUpgrade .... Пакеты инсталлируются..... Что бы сеичас поделать..? Можно пойти погулять, можно посмотреть на ошибки/warning (чур меня, чур), если они будут, и записать что могло случится для последующего изучения. Самое умное - это уже сеичас занятся конфигурацией системы во второй консоли (rpm говорит же нам, что фаил ххх сохраняется в ххх.rpmsave или фаил yyy создается как yyy.rpmnew) Например: warning: /etc/mail/spamassassin/local.cf created as /etc/mail/spamassassin/local.cf.rpmnew Шаг 21b: В самом конце пройдемся apt-ом еще разок, чтобы подтянуть до актуальной версии те пакеты, которые мы были вынуждены downgrad-ить. apt -s upgrade Reading Package Lists... Done Building Dependency Tree... Done The following packages will be upgraded apache2 apache2-prefork autoconf bind bind-libs bind-utils coreutils glibc-locale libapr0 libsmbclient samba-client 11 upgraded, 0 newly installed, 0 removed and 0 not upgraded. Inst coreutils [5.2.1-23.6] (5.2.1-32 SuSE:9.2/stable) Inst apache2-prefork [2.0.50-7.3] (2.0.52-5.1 SuSE:9.2/stable) [] Inst apache2 [2.0.50-7.3] (2.0.52-5.1 SuSE:9.2/stable) [] Inst libapr0 [2.0.50-7.3] (2.0.52-5.1 SuSE:9.2/stable) Inst autoconf [2.59-78] (2.59-79 SuSE:9.2/stable) Inst bind-utils [9.2.4-3.2] (9.3.0-2.1 SuSE:9.2/stable) [] Inst bind [9.2.4-3.2] (9.3.0-2.1 SuSE:9.2/stable) [] Inst bind-libs [9.2.4-3.2] (9.3.0-2.1 SuSE:9.2/stable) Inst libsmbclient [3.0.9-2.1] (3.0.10-0.1 SuSE:9.2/stable) Inst samba-client [3.0.9-2.1] (3.0.10-0.1 SuSE:9.2/stable) Inst glibc-locale [2.3.3-98] (2.3.3-118 SuSE:9.2/stable) Conf coreutils (5.2.1-32 SuSE:9.2/stable) Conf libapr0 (2.0.52-5.1 SuSE:9.2/stable) Conf apache2 (2.0.52-5.1 SuSE:9.2/stable) Conf apache2-prefork (2.0.52-5.1 SuSE:9.2/stable) Conf autoconf (2.59-79 SuSE:9.2/stable) Conf bind-libs (9.3.0-2.1 SuSE:9.2/stable) Conf bind-utils (9.3.0-2.1 SuSE:9.2/stable) Conf bind (9.3.0-2.1 SuSE:9.2/stable) Conf libsmbclient (3.0.10-0.1 SuSE:9.2/stable) Conf samba-client (3.0.10-0.1 SuSE:9.2/stable) Conf glibc-locale (2.3.3-118 SuSE:9.2/stable) Шаг 22: Создадим лист проинсталлированых пакетов. rpm -qa | sort > myAktRPMs-9.2 Шаг23: Сравним старый лист с новым kompare myAktRPMs-9.1 myAktRPMs-9.2 Для того, чтобы убедится в том что старые пакеты переписались новыми, смотрим в /var/log/apt.log и ищем примерно такие строчки: toolame is already the newest version. rar is already the newest version. rpmkey-packman is already the newest version. w32codec-all is already the newest version. xine-skins is already the newest version. Если какие пакеты и не переписались - ничего страшного, сотрем их (пакеты от 9.1) вручную: rpm -e --nodeps и проинсталлируем их заново: apt -f install или apt install Шаг 24: запускаем SuSEconfig ./SuSEconfig Шаг 25: Во время update должны были изменится некоторые конфигурационные файлы. Какие? Для этого запустим команду rcrpmconfigcheck rcrpmconfigcheck Пример вывода: rcrpmconfigcheck Searching for unresolved configuration files done Please check the following files (see /var/adm/rpmconfigcheck): /etc/X11/qtrc.rpmnew /usr/lib/sasl2/smtpd.conf.rpmnew Шаг 26: Теперь начинается самая "интересная" работа. ВСЕ вышеперечисленные конфиг фаилы должны быть проверены. Чтобы их быстро сравнить, можно воспользоватся sdiff: sdiff -s Если мы на выходе ничего не получим, значит оба фаила одинаковы и мы можем Если же мы нашли различия, то выполняем команду: kompare Если Вы еще не имеете эту команду, то сеичас хороший повод ее установить: apt install kdesdk3 ########################################################### ДОРАБОТКИ ########################################################### Шаг 27: Когда Вы сравнили все конфиг-фаилы, можете облегченно вздохнуть - Вы теперь владеете SuSE 9.2 Старую Cache-директорию от 9.1 (обычно /var/cache/apt и /var/state/apt) можно стереть. Шаг 28: Теперь можно ребутнутся. ########################################################### Дополнительные материалы. 1. 2. 3. 4. Теперь можно сказать, что вышеописаная методика update работает также для SuSE 9.3. Просто замените в скриптах 9.2 на 9.3. Небольшой HowTo как проинсталлитъ KDE 3.4, какая версия SuSE не важно, как и обещал. 1. Обновлятся лучше из консоли, KDE вырубим. Для этого делаем Ctrl + Alt + F2, регистрируемся под root и жмем # init 3. Когда покажется надпись reached жмем Enter. 2. Пишем "apt update", чтобы проактуализировать apt список пакетов на локальном компьютере 3. Затем "apt -s upgrade". Должен вылезти лист пакетов, предлагаемых для upgrade. Небольшое замечание: похоже пакет k3b не хочет работать с KDE 3.4. Самый простой способ это снести его и проинсталлировать более новую версию. Рекомендую k3b взять отсюда: Это исключение может быть не единственым. 4. Теперь пишем следующую команду, которая собствено и обновит KDE: apt install ImageMagick ImageMagick-Magick++ ImageMagick-devel arts arts-devel k3b \ kde3-i18n-de kdeaddons3-games kdeaddons3-kate kdeaddons3-kicker \ kdeaddons3-konqueror kdeartwork3-sound kdeartwork3-xscreensaver kdebase3-extra \ kdebase3-kdm kdebase3-ksysguardd kdebase3-nsplugin kdebase3-samba kdegames3-arcade \ kdegames3-board kdegames3-card kdegames3-tactic kdegraphics3-extra kdegraphics3-fax \ degraphics3-imaging kdegraphics3-pdf kdegraphics3-postscript kdegraphics3-scan \ kdelibs3-doc kdenetwork3-InstantMessenger kdenetwork3-news kdeutils3-extra \ kdeutils3-laptop kdiff3 knights krecord libart_lgpl libart_lgpl-devel openldap2-client qindustrial \ qt3 qt3-devel qt3-mysql kdeadmin3 kdeartwork3 kdebase3 kdebase3-devel kdeedu3 \ kdegames3 kdegraphics3 kdelibs3 kdelibs3-devel kdenetwork3 kdepim3 kdeutils3 Просмотрите внимательно названия пакетов и удалите, то, что Вам не нужно. 5. Теперь тапустим "/opt/kde3/bin/genkdmconf" эта программа подкорректирует файл kdmrc под новый формат. 6. Ну и наконец "init 5" должен запустить новый KDE Если у Вас стояла очень старая KDE, то возможно у Вас не будет системных звуков. На это может быть две (будет больше - пишите) причины: а) В старых версия KDE звуки хранились в wav формате, сеичас они хранятся в ogg. Значит надо их переконвертировать/сменить на новые или попробовать запустить /opt/kde3/bin/genkdmconf это создаст новую конфигурацию для KDE б)старая alsa. Это лечится просто: apt --no-checksig install alsa alsa-tools Опубликовал: CrownRU |