Наши
Сайдбары
   
IRC-канал
Linuxportal.ru
   
Импорт новостей
 
Вход Быстрая регистрация На главную

Поиск:
 
   БИБЛИОТЕКА
     Другие статьи этого раздела:
 

    Система
Другие разделы библиотеки:
   БИБЛИОТЕКА
     последние поступления:
 

Hardware
Перевод Serial-Programming-HOWTO
15.05.2006 | San АНДРЕЕВ
Перевод Linux Power Management Support
03.04.2004 | San АНДРЕЕВ
Варианты решения проблем со смещением геометрии монитора.
10.10.2003 | EsTaF
Multimedia
VideoCD для пингвинов
10.10.2003 | Buddha
Смотрим любимые фильмы с помощью MPlayer
23.07.2003 | Alexey Dmitriev
X-сервер
Включаем Bytecode Interpreter в пакете freetype в некоторых дистрибутивах
05.07.2006 | Alexey Dmitriev
НАСТРОЙКА СЕРВЕРА XDMCP ДЛЯ WINDOWS-КЛИЕНТОВ
09.09.2004 | Kotjara
Type1 и truetype шрифты в LaTeX.
03.05.2004 | geekkoo
Разное
Как самому написать концепцию информационной безопасности
22.03.2007 | Crion
Список рекомендуемой литературы
11.09.2006 | San АНДРЕЕВ
The Multi Router Traffic Grapher
02.06.2004 | Crion
Сеть
"Огненная стена" или строим файрвол на базе iptables
15.03.2005 | Alexey Dmitriev
Защищенная почтовая система
08.09.2004 | Crion
Postfix+Cyrus-SASL
18.12.2003 | geekkoo
Система
Написание драйверов под Linux: рекомендации, типичные ошибки и ловушки.
16.01.2007 | Mr.Nobody
Перевод Linux Daemon HOWTO
21.08.2006 | San АНДРЕЕВ
Усыпляем компьютер
11.01.2006 | San АНДРЕЕВ
   БИБЛИОТЕКА Система    
Автор статьи: CrownRU
Дата: 24.05.2005

Обновляем с помощью apt SuSE 9.1 на 9.2 или 9.3

Буду рад любым толковым замечаниям и предложениям об улучшении.

Обновляем с помощью apt SuSE 9.1 на 9.2 или 9.3 а также небольшой HowTo как проинсталлитъ KDE 3.4

Описываемые здесь операции могут порушить Вашу систему.
Поэтому сперва внимательно прочитайте статью, лучше два раза, а потом уж берите в руки скальпель.
Также подразумевается, что Вы уже работали с Linux и знаете для чего нужен apt в часности.
point-of-no-return буду указывать отдельно.

При написании статьи воспользовался HowTO, любезно предоставленным oc2pus с сайта
Первоисточник на немецком:

Что Вы должны иметь/уметь

Разумеется apt должен быть установлен на Вашей системе.
Backup очень даже не повредит.

apt обычно сохраняет свои Download в локалном Cache /var/cache/apt.
У Вас там должно быть 700-900 МБ свободного места для 9.2 пакетов.
Если у Вас там недостаточно места, то apt Repository можно скачать в другое место, для этого надо подправить
/etc/apt/apt.conf.d/apt.conf

Шаг 1: логинимся под root

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 "
        exit 1
fi

if test -z $SCRIPT_VERSION; then
  SCRIPT_VERSION=1.0
fi
if test -z $RELEASE_VERSION; then
  RELEASE_VERSION=0.xx.1
fi

mySpecName=myVirtual.spec
name=myVirtualPackages
packages="$*"
echo "virtual rpms: $packages"

tmpdir=`mktemp /tmp/virtual.XXXXXX`
rm -f $tmpdir
mkdir -p $tmpdir/{RPMS/i386,SPECS}

(
# Header
cat << $tmpdir/SPECS/$mySpecName

cat $tmpdir/SPECS/$mySpecName
rpm -bb --define "_topdir $tmpdir" $tmpdir/SPECS/$mySpecName

echo "copying $tmpdir/RPMS/i386/*rpm"
cp -p  $tmpdir/RPMS/i386/*rpm .
rm -fr $tmpdir


Затем создаем "Виртуальный 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  .rpmnew


Если мы на выходе ничего не получим, значит оба фаила одинаковы и мы можем .rpmnew стереть
Если же мы нашли различия, то выполняем команду:
kompare  .rpmnew


Если Вы еще не имеете эту команду, то сеичас хороший повод ее установить:
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



Все статьи раздела "Система"

©"Linuxportal.Ru". Материалы сайта можно
использовать свободно при условии
сохранения этой свободы при дальнейшем
распространении, если явно не указано иное

Дизайн и программирование:

Поставьте
нашу кнопку:
Получить код кнопки
Linux Portal.ru ::: Линукс Портал.ру
Наш партнер: