User Tools

Site Tools


64bit-migration

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
64bit-migration [2019/01/15 13:49] snarg64bit-migration [2019/01/15 15:24] snarg
Line 36: Line 36:
   mkdir /usr/lib32   mkdir /usr/lib32
   mkdir /usr/lib64   mkdir /usr/lib64
 +
 +  * If applicable, dont use distcc till its remerged:
 +
 +  rm -Rf /usr/lib/distcc    
  
   * possibly dont need to do this if using binary packages from donor VM   * possibly dont need to do this if using binary packages from donor VM
Line 53: Line 57:
   * change make.profile symlink to point to a multilib amd64 profile   * change make.profile symlink to point to a multilib amd64 profile
  
-  * use quickpkg on source VM to grab and then PATH="/migration-backup/bin:/migration-backup/usr/bin:/migration-backup/sbin:/migration-backup/usr/sbin:${PATH}" emerge -to deploy initial binary packages donated from prebuilt VM from /usr/portage/packages:+  * use quickpkg on source VM to grab and then PATH="/migration-backup/bin:/migration-backup/usr/bin:/migration-backup/sbin:/migration-backup/usr/sbin:${PATH}" emerge -1kav to deploy initial binary packages donated from prebuilt VM from /usr/portage/packages:
 Of these, glibc needs to come first, then everything else will come good. Of these, glibc needs to come first, then everything else will come good.
 in the process of deploying glibc, /lib needs to be a symlink to /lib64 which will break 32bit programs. ldconfig is your friend here with the above 99migration env file.  Theres a couple other gotchas as well that need working through. in the process of deploying glibc, /lib needs to be a symlink to /lib64 which will break 32bit programs. ldconfig is your friend here with the above 99migration env file.  Theres a couple other gotchas as well that need working through.
Line 59: Line 63:
   * on donor pc or VM:   * on donor pc or VM:
  
-  quickpkg glibc gcc zlib ncurses gmp mpfr util-linux acl attr sandbox coreutils procps binutils libcap mpc cracklib flex =db-5* pam pambase+  quickpkg glibc gcc zlib ncurses gmp mpfr util-linux acl attr sandbox coreutils procps binutils libcap mpc cracklib flex =db-5* pam pambase =python-3.6* bash readline findutils install-xattr bzip2 tar xz-utils make grep patch gawk sed libpcre 
 + 
 +  * mount or copy /usr/portage/packages and emerge -1k to install them
  
-  * mount or copy /usr/portage/packages and emerge -k to install them 
-   
-  mv /lib/modules /lib64 
-  mv /lib/gentoo /lib64 
   mv /usr/lib to /usr/oldlib and symlink lib to lib64   mv /usr/lib to /usr/oldlib and symlink lib to lib64
  
-  * /usr/lib symlink creation will break python - mv python-exec, portage and gcc dir to lib64this will not create orphans as the files are in exactly the same location from portage's point of view+  * /usr/lib symlink creation will break python. The following will not create orphans as the files are in exactly the same location from portage's point of view
 + 
 +  cd /usr/oldlib 
 +  mv python-exec python3.6 libpython* portage gcc ../lib64
  
   * remove crossdev packages (and crossdev) and check gcc sanity   * remove crossdev packages (and crossdev) and check gcc sanity
-  * remove /etc/env.d/99migration, env-update, ldconfig, sanity check. 
-  * check for i686 compiler orphans with: qfile -o /usr/bin/i686-pc-linux-gnu-* 
  
 +  emerge --unmerge cross-x86_64-pc-linux-gnu/* crossdev -av
 +  ldconfig
  
-dns was broken at this point  (prob somethign to do with libnss_dns.so)+  * fix 32bit toolchain and python in wrong directory by running:
  
-  *for the lib and /usr/lib dir<-> switcheroo +  emerge -1kav sys-devel/gcc glibc mpfr mpc binutils  
-  ** make sure busybox is functional+  binutils-config 1 
 +  . /etc/profile 
 +   
 +  emerge -1av python-exec  
 +  emerge -1kav =python-3.6--binpkg-changed-deps=n 
 +   
 +  mv /lib/modules /lib64 
 +  mv /lib/gentoo /lib64 
 + 
 +  *for the lib / lib64 link <-> switcheroo 
 +  ** make sure busybox is functional. run this from busybox
   ** have a few shells open, in case you break the one you're working from   ** have a few shells open, in case you break the one you're working from
  
-  rm -Rf /usr/lib/distcc    (dont use distcc till its remerged)+  mv /lib/modules /lib64 
 +  mv /lib/gentoo /lib64 
 +   
 +  cd / 
 +  mv lib oldlib 
 +  ln -s lib64 lib 
 + 
 + 
 + 
 +  * remove /etc/env.d/99migration, env-update, ldconfig, sanity check. 
 +  * check for i686 compiler orphans with: qfile -o /usr/bin/i686-pc-linux-gnu-* 
  
   emerge gcc -1av   emerge gcc -1av
64bit-migration.txt · Last modified: 2023/06/21 12:02 by snarg