He migrado mi estación de trabajo de Ubuntu Mate 14.04 LTS a Fedora 25 Workstation (antes era Fedora 24 MATE Spin) con excelentes resultados en rendimiento y funcionalidad. En el camino tomé notas, las dejo como guía por si resultan de utilidad para alguien más.
Trataré de ser agnóstico en cuanto a uso en general, así que deben de servirte independientemente del papel que desempeñe Fedora para el usuario. No depende de ambientes de escritorio ni te voy a decir como instalar un montón de programas que quizás no requieres, eso lo veré en las siguientes partes del artículo.
Pre-Instalación: Lo que debes saber antes
Wayland en vez de X.org
A partir de ésta versión ha habido ciertos cambios en la tecnología de la infraestructura gráfica, cambiando el servidor X.org tradicional por Wayland. Aunque es estable para su uso en general, aún no lo recomiendo como opción por default todavía.
Particularmente, en el modo multi-monitor frecuentemente pueden encontrar problemas como sesiones en blanco, artefactos en video y lockups en el sistema.
Puedes probarlo, en la mayoría de los casos es lo suficientemente estable para usarlo, pero siempre tienes la opción de regresar a X.org en caso de que lo requieras.
No fglrx
Los usuarios de FGLRX o los nuevos drivers privados como Crimson no tendrán soporte de los drivers para las versiones de Xorg y el kernel que incluyen distros como Fedora o Ubuntu recientes.
La recomendación es seleccionar distribuciones basadas en el Kernel 3.6 todavía (todas las derivadas de ubuntu 14.04 son buenos candidatos). Aparte de algunos programas que no se pueden actualizar no afectará mucho tu experiencia como usuario.
Partición /home separada
Para facilitar la actualización o cambio de distribuciones de linux recomiendo mantener una partición separada con el directorio /home. En caso de requerir un cambio o reinstalación, éstas pueden realizarse fácilmente sin formatear la partición, evitando que se requiera copia de datos de respaldo externo.
Asegúrense de darle amplio espacio a la partición y seleccionar un buen punto en el esquema de particiones (en medio o al final dependiendo de tu geometría de particiones).
Compatibilidad con Windows
Es muy importante que estés preparado en caso que de vayas a usar Windows en un sistema de dual boot coexistiendo con Fedora.
Revisa las opciones de UEFI/BIOS en tu equipo y asegúrate de instalar tu sistema en el orden correcto (primero Windows -> redimensionado de disco desde Windows -> Luego instalación de Linux). No tengo un equipo con UEFI activo así que no requerí tomar muchas precauciones.
xfs recomendado como sistema de archivos
xfs es el sistema de archivos recomendado. Grub ya puede bootear desde particiones / con xfs así que pueden seleccionarlo como el sistema de archivos de todo el sistema. En mi opinión es excelente en rendimiento y robustez (sobrevive problemas de disco sin mucho problema), así que te recomiendo que lo pruebes si haces una instalación nueva.
ext* para compatibilidad con otras distros/OS
En caso de que utilices alguna distro adicional o requieras accesar las particiones desde Windows es más recomendable mantener el sistema de archivos ext4. Aunque tiene un menor rendimiento en algunas cargas de trabajo es ampliamente compatible entre distros, discos de rescate e interoperabilidad entre sistemas operativos. Con FreeBSD, por ejemplo, no pude leer los datos de la partición XFS.
Instalación:
Puedes familiarizarte con la instalación leyendo la documentación oficial: https://docs.fedoraproject.org/en-US/Fedora/25/html/Installation_Guide/index.html
Descarga un netinstall en vez de un Spin tradicional
Para mayor flexibilidad en la instalación recomiendo descargar el netinstall en vez del ISO de default o sus diferentes spins. Lo único que cambia es que requerirás acceso a la Internet durante la instalación para descargar tus paquetes.
Por ejemplo, el netinstall te permitirá instalar casi cualquier ambiente de escritorio, incluso aquellos que no tienen disponible un spin como LXQT.
Descárgalo del sitio oficial: https://alt.fedoraproject.org/.
PROTIP:Puedes configurar DNS alternativos en tu conexión desde el menú de instalación al dar de alta una nueva.
PROTIP: No descargues todos los grupos de paquetes desde la instalación, es más fácil instalar una base, actualizarla y luego descargar todo lo que necesites desde un sistema activo.
UTC y NTP tienen que configurarse, cuidado con el reloj de Windows
Un caveat, si la hora del sistema cambia entre reiniciadas en Windows y Linux asegúrate de configurar Windows en el mismo esquema que tienen configurado Linux (si usas Network time activo o UTC que quede igual en ambos sistemas).
Post-install: Primero lo primero
Mejora la velocidad de descarga de paquetes: habilita fastestmirror en dnf
Antes que nada, habilitamos la funcionalidad fastestmirror de DNF para asegurar descargas más veloces y eficientes.
Edita el archivo /etc/dnf/dnf.conf y agrega al final:
fastestmirror=true
A partir de ahora, todas las operaciones de manejo de paquetes con DNF usarán el mirror más rápido, lo que te dará como resultado operaciones más rápidas al descargar paquetes.
DNF update
Ahora puedes correr una actualización del sistema con DNF update. Recomiendo reiniciar el sistema para correr el kernel y los parches de seguridad más recientes antes de proseguir.
dnf update
Paquetes esenciales de desarrollo y operación
Utiliza el comando Groupinstall de Development Tools para tener la base mínima requerida para compilar programas.
dnf group install "Development Tools"
Para crear tus propios paquetes (o utilizar paquetes que los autogenerarán por ti) requerirás el paquete de herramientas de RPM. Frecuentemente también requerirás la cadena de desarrollo de C y C++.
dnf group install "C Development Tools and Libraries"
dnf group install "RPM Development Tools"
LSB
Linux Standards Base provee una base de compatibilidad para aplicaciones y librerías entre diferentes versiones, y es un requisito de varios programas como Google Chrome. Instálalo usando el comando:
dnf install redhat-lsb
RPM Fusion
Agregar el repo de RPM Fusion para variedad más amplia de software. RPM Fusion provee una enorme cantidad de paquetes de software, generalmente basta instalar éste repositorio para la mayoría de los usuarios de escritorio.
La manera más simple de instalarlo es con el siguiente comando:
su -c 'dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm'
No olvides correr dnf update después de instalar los repos
Usuarios de laptops y servidores con requerimientos energéticos considerables: Instalen tlp
Agregar y habilitar el subsistema TLP si el equipo es una laptop para usar más eficientemente la batería y reducir la temperatura promedio del sistema.
dnf install tlp
Una vez instalado, es requisito iniciarlo y configurar su inicio al arranque del sistema:
sudo systemctl start tlp
sudo systemctl enable tlp.service
Puedes checar detalles y estadísticas del sistema con tlp-stat:
tlp-stat –-battery
Security - Hardening
Es muy importante revisar la seguridad general de un sistema desde su primer uso. Aparte de las recomendaciones estándar de Linux (contraseñas seguras, particiones encriptadas, cuentas limitadas) hay algunos fedorismos adicionales que mejoran un poco el nivel de seguridad.
Archivo de HOSTS
Personalmente, uso una solución simple para bloquear anuncios excesivos y conexiones entrantes y salientes
a dominios conocidos de malware. Uso un archivo de hosts
modificado.
Hay varios archivos de hosts disponibles en la red, puedes checar alguno como el de mvps para empezar.
Copia de seguridad
cp -v /etc/hosts /root/hosts.bak
Reemplazamos el archivo de hosts del sistema por uno nuevo, modificando el encabezado para mantener la sintaxis preferida de hosts de fedora (la parte de 127.0.0.1 con localhost).
Reemplazo:
cp -v hosts-nuevo /etc/hosts
En ocasiones puede evitar que veas algunas páginas que consideras "legítimas" (de pirateria de software y sitios para adultos generalmente), así que no todos lo usan por ese motivo.
DNS de verisign/opendns
Editar parámetros de conexión para utilizar DNS más seguros y rápidos en NetworkManager. Pueden utilizar el método de edición en archivos de /etc para habilitar el cambio de modo permanente, aunque también puedes copiarlos y pegarlos en las propiedades de conexión del Network Manager.
Tuve algo de comportamiento raro usando los DNS de default de mi proveedor de Internet (Telmex), ocasionalmente tardaban en refrescarse las páginas o apuntaban a ips equivocadas. Probé los de Verisign y OpenDNS exitósamente.
Las direcciones de servidores DNS adicionales son:
64.6.64.6, 64.6.65.6, 208.67.222.222, 208.67.220.220
Si requieres direcciones IPv6 puedes encontrarlas desde las páginas de los proveedores (con mi envidia de que estés en un lugar donde pueden usar IPv6).
Yo evito usar Google DNS para no darle toda la información privada de mis hábitos cochinos a Google. Google además tiene un historial de salvar tus datos para proveerselo a autoridades o usarlo con fines "internos" no especificados.
Estoy probando DNS Crypt, así que probablemente vean un artículo de cómo usarlo luego.
Firewall
Fedora utiliza firewalld, así que pueden tomar ventaja de todo el trabajo hecho en vez de configurar su script de iptables tradicional. Sólo seleccionen su zona por conexión y los servicios que deseen habilitar. Pueden cambiar los puertos de algunos servicios que utilicen para prevenir ataques automatizados (por ejemplo, no usen SSH en el puerto 22 ni Apache/Nginx en el puerto 80). Los comandos base son:
firewall-cmd --state
firewall-cmd --get-zones
firewall-cmd --set-default-zone=$zone
Revisa la documentación de Firewalld en https://fedoraproject.org/wiki/Firewalld para que elijas tu zona, servicios permitidos y reglas de conexión que se adaptan más a ti.
Clamav
Me gusta tener un antivirus debido al contacto constante con archivos que comparto con gente que trabaja en Windows / macOS. Nunca está de más.
dnf install clamav
Una vez instalado, no olviden editar clamav.conf y editar freshclam en cron.daily para tener actualizaciones automáticas.
Maldet
Linux malware detect no está disponible como paquete en Fedora, tendrás que descargar el código, compilarlo e instalarlo (es bastante fácil siguiendo el archivo INSTALL). No olvides configurar esmtp en /root/.esmtprc, hay un bug en selinux que lanza errores y notificaciones de selinux.
Performance / Rendimiento:
Tuned Daemon
Tuned es un daemon que corre en el fondo de la computadora, cambiando los parámetros de configuración de áreas del kernel y sistema para adaptar el rendimiento al perfil seleccionado. Ofrece varios perfiles optimizados para diferentes casos de uso, como servidores de alta latencia, máquinas virtuales o servidores de bases de datos.
Instálalo desde dnf
dnf install tuned
Inicia el daemon (como root)
systemctl start tuned
Ahora ejecuta el daemon al iniciar el sistema
systemct enable tuned.service
Puedes revisar la lista de perfiles que incluye el daemon:
tuned-adm list
Para cambiarlo, usas la siguiente instrucción:
tuned-adm profile $NOMBRE_DEL_PERFIL
El Daemon puede recomendarte que perfil usar, aunque en todos los casos que he visto recomendará balanced.
tuned-adm recommend
He probado todos los perfiles en mi laptop, y debo de decir que extrañamente, el que mejoró la responsividad y rendimiento fue powersave.
tuned-adm profile powersave
Kernel:
Desde la época de Slackware 9.1 he usado kerneles customizados. Hay ciertas opciones del Kernel que pueden modificarse para optimizarlo al perfil de uso específico que le vas a dar.
En mi caso de uso quiero una Workstation de Desarrollo Web de alta responsividad. En Fedora es fácil usar un kernel con los siguientes parches gracias al trabajo de Pavel Alexeev, que portea una versión del kernel con mejoras en Schedulers y opciones de CPU governors de Con Kolivas https://ck-hack.blogspot.mx/2016/10/muqss-multiple-queue-skiplist-scheduler.html
Éste es el procedimiento:
Repositorio de Kernel: http://hubbitus.info/wiki/Main
Instala el repositorio
sudo 'rpm -Uhv http://rpm.hubbitus.info/Fedora25/Hubbitus-release-25-latest.noarch.rpm'
Opcional: Actualiza los repositorios
dnf update
Primero verifica que versiones están disponibles para seleccionar el indicado
dnf list available kernel
Ahora instala el nuevo kernel (la versión cambiará dependiendo de la última versión de desarrollo):
dnf install kernel-4.8.7-300.pf7.hu.1.fc25
Selecciona el nuevo scheduler para el kernel
sudo touch /etc/tmpfiles.d/set_IO_scheduler.conf
sudo 'echo "w /sys/block/sda/queue/scheduler - - - - bfq" > /etc/tmpfiles.d/set_IO_scheduler.conf'
Ahora verifica el scheduler que estás corriendo:
cat /sys/block/sda/queue/scheduler
Oracle JDK
Si eres desarrollador de Java probablemente requieras usar el JDK oficial de Oracle. Descarga el RPM correspondiente a tu sistema (64 o 32 bits) del sitio oficial: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html.
Instálalo con rpm:
rpm -ivh jdk-$version-linux-x64.rpm
Una vez instalado puedes utilizar el comando alternatives para configurar el sistema para usar el JDK de Oracle exclusivamente.
alternatives --config java
alternatives --config javac
alternatives --config javaws
Verifica que esté seleccionado con:
alternatives --list | grep /usr/java
Con ésto concluyo la parte 1, el Sistema Base. Debemos de tener una buena base para diferentes roles.
Siguiente entrega: Software para Servidores y de Escritorio (Incluyendo códecs, tipografía y Stacks de desarrollo Web).
Como siempre, agradezco sugerencias y comentarios.