Migrar de Ubuntu a Trisquel sin reinstalar

Éste script automatiza todos los pasos que son necesarios para migrar desde cualquier versión de Ubuntu que tenga una contraparte en Trisquel sin tener que reinstalar todo el sistema. Reemplazará el núcleo por Linux-libre, removerá el mayor número de paquetes no libres que sea posible e instalará el conjunto de paquetes por defecto de Trisquel.

Copia el script en un archivo, llámalo "trisquelize.sh" y córrelo con "sudo sh trisquelize.sh".

Notas:

  • Edita las variables $MIRROR, $RELEASE y $EDITION si es necesario.
  • El contenido de éstas variables son los necesarios para migrar desde Ubuntu 12.04 Precise a Trisquel 6.0.
  • ¡Nunca inténtes correr el script en una versión de Ubuntu que no tenga su contraparte en Trisquel! Pregunta en los foros si no estás seguro.
  • El script intenta eliminar los paquetes no libres conocidos en los repositorios main y universe de Ubuntu; todos los demás se mantendrán.
  • Si el disco está cifrado asegúrate de tener la clave paintext escrita en caso de que algo vaya mal.
  • Es recomendado hacer copias de seguridad.
  • El script contiene algunas líneas largas, piensa si tu puedes modificarlo.
  • Si algo va mal y necesitas ayuda, copia el contenido de /var/log/trisquelize.log en http://trisquel.pastebin.com y pregunta en el foro escribiendo el enlace a tu registro en pastebin.
  • Te recomendamos que te unas al canal IRC #trisquel en irc.freenode.net durante el proceso, por si en algún momento necesitas ayuda.

#!/bin/bash
#
#    Copyright (C) 2010  Rubén Rodríguez <ruben@trisquel.info>
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
#

if ! touch /etc/apt/sources.list 2>/dev/null
then
echo You need to run this script with sudo!
echo Try: sudo sh $0
fi

# Edit this lines if you want to use a different mirror, release or edition.
# Available editions are trisquel and trisquel-mini
MIRROR="http://es.archive.trisquel.info/trisquel/"
RELEASE="toutatis"
EDITION="trisquel"

cp /etc/apt/sources.list /etc/apt/sources.list.ubuntu-orig
cat << EOF > /etc/apt/sources.list
deb $MIRROR $RELEASE main
deb $MIRROR $RELEASE-security main
deb $MIRROR $RELEASE-updates main
#deb $MIRROR $RELEASE-backports main
deb-src $MIRROR $RELEASE main
deb-src $MIRROR $RELEASE-security main
deb-src $MIRROR $RELEASE-updates main
#deb $MIRROR $RELEASE-backports main
EOF

sed -i 's/\(.*\)/#\1/' /etc/apt/sources.list.d/*

cat << EOF > /etc/apt/preferences.d/pinning
Package: *
Pin: release o=Trisquel
Pin-Priority: 1001
EOF

export DEBIAN_FRONTEND=noninteractive
apt-get update 2>&1 | COLUMNS=500 tee /var/log/trisquelize.log
apt-get -y --force-yes install trisquel-keyring 2>&1 | COLUMNS=500 tee -a /var/log/trisquelize.log
apt-key add /var/lib/apt/keyrings/trisquel-archive-keyring.gpg 2>&1 | COLUMNS=500 tee -a /var/log/trisquelize.log
apt-get remove --purge plymouth-theme-ubuntu 2>&1 | COLUMNS=500 tee -a /var/log/trisquelize.log
apt-get remove --purge plymouth-theme-ubuntu-text 2>&1 | COLUMNS=500 tee -a /var/log/trisquelize.log
apt-get -y --force-yes dist-upgrade 2>&1 | COLUMNS=500 tee -a /var/log/trisquelize.log
apt-get install -y --force-yes --no-install-recommends $EDITION $EDITION-recommended 2>&1 | COLUMNS=500 tee -a /var/log/trisquelize.log
apt-get install -y --force-yes --no-install-recommends linux-image-generic 2>&1 | COLUMNS=500 tee -a /var/log/trisquelize.log
rm /etc/apt/preferences.d/pinning

echo -------------------------------------------
echo All Trisquel packages succesfully installed.
echo Your system may still have some non-free packages installed,
echo I\'ll now ask you for removal, one by one.
for i in aee afio app-install-data-commercial app-install-data-partner app-install-data-ubuntu b43-fwcutter capiutils chromium-browser chromium-browser-dbg chromium-browser-inspector chromium-browser-l10n chromium-codecs-ffmpeg chromium-codecs-ffmpeg-dbg chromium-codecs-ffmpeg-extra chromium-codecs-ffmpeg-extra-dbg chromium-codecs-ffmpeg-nonfree chromium-codecs-ffmpeg-nonfree-dbg d4x-common envyng-core envyng-gtk envyng-qt fglrx-modaliases firefox-3.5-branding firefox-branding freesci freesci-doc gstreamer0.10-pitfdll helix-player ipppd isdnactivecards isdneurofile isdnlog isdnlog-data isdnutils isdnutils-base isdnutils-doc isdnutils-xtools isdnvbox isdnvboxclient isdnvboxserver ivman jockey jockey-common jockey-gtk jockey-kde libmoon libmoonlight-desktop2.0-cil-dev libmoonlight-gtk3.0-cil libmoonlight-system-windows-controls2.0-cil libmoonlight-system-windows3.0-cil libmoonlight-windows-desktop3.0-cil libubuntuone libubuntuone-1.0-1 libubuntuone-dev libubuntuone1.0-cil libubuntuone1.0-cil-dev monodoc-moonlight-manual moon moonlight-plugin-core moonlight-plugin-mozilla moonlight-tools moonlight-web-devel mozilla-helix-playguioner ndisgtk ndiswrapper ndiswrapper-common ndiswrapper-utils-1.9 nvidia-173-modaliases nvidia-180-modaliases nvidia-185-modaliases nvidia-96-modaliases nvidia-common nvidia-current-modaliases nvidia-settings ophcrack ophcrack-cli pdftk pppdcapiplugin rman scribus-ng-doc scsi-firmware linux-firmware software-center tatan ubufox ubuntuone-client ubuntuone-client-gnome ubuntuone-client-tools ubuntuone-storage-protocol user-mode-linux vrms
do
echo WARNING: non-free package found: $i
echo Do you want to remove it?
apt-get remove --purge $i
done

echo -------------------------------------------
echo System successfully Trisquelized!
echo If you want to use the Trisquel default desktop layout and
echo other gconf settings, run this as user:
echo gconftool --recursive-unset /apps

Revisiones

01/23/2011 - 00:33
Herion
01/20/2014 - 17:58
antiesnob