dissabte, 8 de setembre del 2018

Aprendre a programar aux - Instal·lar Linux (o no)

Quan comencem a programar podem tenir el dubte. Ens instal·lem Linux? Cal? No cal? Què és millor? Com es fa?
Jo en aquest post intento una mica explicar si cal o no cal, i sobretot veure com es fa si decidim fer-ho.

Per què Linux?

Abans de res, cal saber què és Linux. Linux és bàsicament el nucli d'un sistema operatiu, que és GNU. De fet, gairebé sempre que diem Linux, ens referim a la combinació GNU/Linux, però això és més un tema lingüístic

Per programar ens interessa Linux per diverses raons. Una bàsica és que té una consola molt potent. Instal·lar el software per programar és molt fàcil, i es pot fer directament des d'aquesta. De fet, està tan bé aquesta consola, que a Windows 10 la pots instal·lar si habilites les opcions de desenvolupador. Hi ha més raons encara, però per principiants tampoc afecta massa

Per a ús quotidià també ens pot interessar. En general és gratuït i lliure, tot i que això depèn de les distros. Així que no hem de posar-nos a piratejar-lo ni pagar-lo. A més, tenim llibertat absoluta per fer el que vulguem amb ell, cosa que mola molt quan et vols posar a tocar-lo per dins i modificar coses. I és molt fàcil d'instal·lar quan n'aprens, molt més que Windows. Jo us ho recomano

Doncs a posar-nos Linux

Fixeu-vos bé que he dit "posar-nos" i no instal·lar. Això és perquè no necessàriament ens l'hem d'instal·lar per utilitzar-lo. Així que, malgrat que jo sempre recomani la instal·lació normal, us explicaré les opcions que conec, perquè pugueu triar

Tinc Windows 10, no vull treure'l ni haver de sortir d'ell

En aquest cas, el millor que podeu fer és instal·lar bash (l'intèrpret de comandes més utilitzat a Linux) com un programa més. Bàsicament permet tenir la "mateixa" consola que teniu a la FIB. A aquesta us instal·leu g++, editeu l'arxiu ~/.bashrc per afegir el p1++, i ja ho teniu. Per instal·lar bash, podeu seguir aquest article (o qualsevol altre, simplement és el primer que he trobat)

Tinc un Windows diferent del 10 però no vull treure'l ni haver de sortir d'ell

Aleshores, podeu virtualitzar el Linux. Podeu fer-ho amb VMware, amb VirtualBox o amb altres. Això el que fa és simular que teniu Linux instal·lat, però des de dins del Windows. 
A l'hora d'instal·lar, assigneu-li una quantitat considerable de RAM i una mica d'espai de disc (jo menys de 30 GB no ho veig). Us heu de descarregar la iso del Linux que vulgueu (després us aconsello sobre això), i fareu una instal·lació normal, però des del programa. Per tant, seguiu per la part de la instal·lació

Vull tenir el Linux amb el seu entorn gràfic, però no tinc espai per fer una partició

Pots posar-te'l en un live USB. Un live USB està pensat per utilitzar el sistema tenint-lo en un USB. Normalment aquest USB és de només lectura, i no podeu desar el que feu, però és una opció. Això es pot canviar, però si no és un USB 3.0 no us ho recomano (i si ho és, feu la prova i mireu que tal va la velocitat). 
Algunes distros de Linux ofereixen un mateix arxiu iso per virtualitzar i per instal·lar, altres n'ofereixen de diferents. Us baixeu el que toqui, l'instal·leu en un USB, arrenqueu des d'ell i ja podeu córrer Linux

El principal problema que podem tenir amb això és tornar a instal·lar g++, p1++ i tot això. Per evitar-vos la feina, podeu utilitzar un script com el següent

#!/bin/bash

alias='g++ -D_JUDGE_ -DNDEBUG -O2 -Wall -Wextra -Werror -Wno-sign-compare -Wshadow'

apt install g++
apt install geany
echo 'p2++='"'"$alias"'" >>~/.bashrc

Podeu canviar geany pel vostre editor preferit. Ho deseu com a script.sh, o el nom que vulgueu. Aleshores, per executar aquest script heu de fer una de les dues següents

(OPCIÓ 1)
$chmod +x script.sh
$sudo ./script.sh

(OPCIÓ 2)
$sudo bash script.sh

Si us sóc sincer, no he provat aquest script. Si us falla, em podeu enviar un mail de queixa i ja ho revisaré
Per cert, vigileu, ja que hi ha cometes simples i cometes dobles. Copieu i enganxeu per evitar problemes

Vull instal·lar Linux

Per instal·lar Linux hem de fer una sèrie de processos

Triem la distro

Hi ha moltíssimes distros de Linux. Jo, per a algú que sigui principiant, li recomano una que sigui basada en Ubuntu (o Ubuntu directament). Les que us recomano són les següents

Ubuntu
Lubuntu
Kubuntu
Xubuntu
Linux Mint Cinnamon
Linux Mint MATE
Linux Mint Xfce

Jo buscaria fotos i triaria la que us agradi estèticament. No obstant, us puc explicar en què es diferencien

Ubuntu és d'on parteixen totes aquestes (Ubuntu parteix de Debian, però Debian el deixaria per més tard). Utilitza GNOME, que és un entorn d'escriptori que em sembla particularment lleig i incòmode, però conec gent a qui li encanta. Per a gustos, colors. Mireu fotos i ja
Lubuntu és Ubuntu però amb l'entorn d'escriptori LXDE. És un entorn d'escriptori molt lleuger, de manera que corre bé en ordinadors més vells. El contra que li veig és que és una mica massa senzill estèticament
Kubuntu és Ubuntu amb KDE. És el mateix entorn d'escriptori que tenen els ordinadors de la uni, així que us sonarà i segurament sigui més fàcil d'utilitzar al principi. És el més pesat, però, i té algun bug. No obstant, suda, va bastant bé
Xubuntu és Ubuntu amb Xfce, un entorn molt lleuger, però no tant com LXDE

Linux Mint és una distro basada en Ubuntu, però amb més software preinstal·lat, de manera que pot ser més senzilla al principi. Podeu triar entre Cinnamon, MATE i Xfce. Jo prefereixo Cinnamon, però MATE també està bé. I si teniu un ordinador vell, doncs Xfce

Tampoc és com triar entre Charmander, Squirtle i Bulbasaur (Charmander 100%), ja que sempre podeu canviar en qualsevol moment. Jo us explicaré com fer-ho de manera que el canvi sigui fàcil

Crear l'USB d'instal·lació

En totes aquestes que he dit, s'utilitza la mateixa imatge pel live USB i per la instal·lació, de manera que no ens equivocarem. Vigilem de baixar la de 64 bits si tenim un sistema de 64 bits, que serà molt millor.
Per crear l'USB d'instal·lació, des de Windows utilitzarem un programa que es diu Rufus o un que es diu Unetbootin. Els dos ens ho faran. Necessitem un USB prou gran com perquè hi càpiga la imatge, i òbviament baixar-la. Cada una a la seva web (les tres de Linux Mint estan a la web d'aquest)

(si volem conservar el Windows)

Windows té un mal costum, que és arruinar-te les particions. Per evitar que et porti problemes, li hem de dir que s'oblidi de la part del disc on instal·larem Linux. Anem al gestor de discs, seleccionem el (o els) discs que volem utilitzar per instal·lar Linux, i li donem a la opció de reduir. Seleccionem l'espai que volem donar al Linux, i Windows passarà a ignorar aquell espai

Instal·lació

Hem d'arrencar des del USB. Això es pot fer quan s'està encenent l'ordinador, ens dirà quina tecla hem de prémer per fer-ho (F algo normalment, o Esc, o alguna altra). O podem configurar a la bios perquè arrenqui preferentment des del USB. Això com veieu

Algunes imatges ens permeten instal·lar directament, altres només donen l'opció d'arrencar el live USB, i des de dins poden instal·lar. Jo arrenco sempre el live USB, comprovo que vagi bé, i instal·lo des d'allà
La instal·lació en general és molt senzilla. No obstant, jo distingiria entre instal·lació amb HDD i instal·lació amb SSD+HDD

HDD

Si només tenim un HDD, tot anirà instal·lat al mateix disc. Jo us recomano crear dues particions, una pel directori / i una pel /home. Si teniu intenció d'instal·lar més d'una distro, una tercera pel swap, però si no, no cal. Pel / posaria unes 15-20 GB, tot i que podeu posar més, mentre que pel /home la resta. Si no feu una pel swap, poseu-li més al /, mínim 20
Per fer això, el que hem de fer és quan ens deixa triar si conservar l'antic SO o sobreescriure, a sota hi ha una opció que diu "alguna altra cosa". Amb aquesta, triem l'espai de disc que hem reservat al Windows (o tot el disc si volem sobreescriure), i fem les particions des d'aquí mateix

L'avantatge de crear particions separades pel / i el /home és que si volem canviar de distro, només sobreescriurem el /, i les dades, configuracions i tal es conservaran

SSD+HDD

Quan tenim un SSD i un HDD, el que ens interessa és tenir el sistema operatiu al SSD, però totes les dades al HDD. I això és el que us vull ensenyar
A l'hora d'instal·lar, feu una instal·lació normal, no cal que feu res estrany. No cal ni que us compliqueu la vida en crear una partició separada pel /home, les dades no estaran aquí tampoc. Sí que podeu fer-la per conservar configuracions al canviar de SO, però caldre, no cal. Com vulgueu

Un cop tinguem el SO instal·lat, però, cal fer cosetes per fer que vagi tot bé. Primer de tot hem d'identificar l'etiqueta que té la partició del HDD que volem muntar (jo recomano que no compartiu dades entre Windows i Linux, però podeu fer-ho). Això ho farem amb la comanda
$sudo fdisk -l
Podeu veure que en el meu cas, les particions ja estan fetes. Veiem que hi ha dos discs, que són /dev/sda (SSD) i /dev/sdb (HDD). Identifiqueu quina és la partició que voleu utilitzar

Si l'heu de formatar, jo us recomano utilitzar un programa que es diu gparted. L'instal·leu fent
$sudo apt install gparted
Un cop instal·lat, trieu el disc i formateu amb el format ext4
Per accedir al disc, heu de muntar-lo a algun lloc. Jo faria una cosa així
$sudo mkdir /mnt/HDD
$sudo chown -R oriol /mnt/HDD
$sudo mount /dev/sdb3 /mnt/HDD
(sdb3 o la que sigui)
Primer crea una carpeta (/mnt/HDD). Fa que sigui propietat teva, de manera que la podràs editar. I li diu que munti el disc allà, de manera que quan obris /mnt/HDD estaràs accedint al disc

El problema és que seria pesat muntar-lo cada cop que obrim l'ordinador. Per tant, editarem l'arxiu /etc/fstab per dir-li que munti el disc només arrencar l'ordinador. Ho farem fent
$sudo geany /etc/fstab
Aleshores, hem d'afegir una línia com la següent
/dev/sdb3       /mnt/HDD        ext4    defaults        0       1
Òbviament canviant sdb3 per la partició que vulguem que quedi muntada
Desem, i ja es muntarà sol al arrencar. Podeu reiniciar per comprovar que s'hagi fet bé, o seguir i ja ho mirareu després

Ara toca fer que totes les dades es desin al HDD. Ho farem des de la terminal, però ho podríem fer gràficament. 
$cd
$ls
Aquí veurem com tenim una sèrie de carpetes (Baixades, Documents, Imatges, Escriptori...). Hem de crear els seus equivalents al HDD. Ho farem fent
$mkdir /mnt/HDD/Baixades
$mkdir /mnt/HDD/Documents
...
Una per cada carpeta (amb els noms que tinguin, si heu instal·lat en castellà seran diferents)

Fet això, toca fer que totes les carpetes del home apuntin allà. Ho farem fent les següents comandes
$rm -r Baixades
$ln -s /mnt/HDD/Baixades Baixades

$rm -r Documents
$ln -s /mnt/HDD/Documents Documents

Això per totes les carpetes que tinguem creades. Així, un cop haguem acabat, seguirem tenint les mateixes carpetes, però estaran al HDD. I al SSD hi ha links cap a elles, de manera que quan al Chromium diu que la carpeta de baixades és /home/oriol/Baixades, en realitat està fent referència a /mnt/HDD/Baixades

Fent tot això, pot ser que el sistema hagi detectat que un directori no existia, i hagi decidit fer alguna cosa. Per exemple, jo em vaig trobar que l'escriptori passava a estar allotjat al $HOME enlloc d'estar al $HOME/Escriptori com estava prèviament. Per comprovar-ho, feu això
$cat ~/config/user-dirs.dirs

Si veieu que us mostra coses diferents (per exemple, que l'escriptori està al $HOME a seques), doncs ho modifiqueu i ja. Que us quedi dirigint als links que heu creat


Tot això ho hem fet, com ja haureu suposat, per evitar escriptures innecessàries al SSD. Ho agraireu, ja que us durarà més

Desambiguació:

Alguns dels temes que he comentat poden ser complicats d'entendre. Molts conceptes desconeguts si ets principiant. Així que aquí estan
Partició: Un disc dur té la capacitat que sigui. Però no és un bloc, sinó que el podem dividir en trossos. Així podem tenir una part d'aquest destinada a una cosa, i una altra per una altra cosa. Les particions es fan i desfan fàcilment, no s'ha de tenir por de fer-les
Home: El Home és on els usuaris tenen les seves coses, configuracions i tal. Hi ha la carpeta /home, que és d'on pengen els de tots els usuaris. Un usuari accedeix al seu amb ~ o amb $HOME, tot i que ho podria fer amb /home/nom_usuari
Consola: És l'intèrpret de comandes, que ens permet fer les coses en mode text. Un cop la domines és molt més fàcil que utilitzar l'entorn gràfic
Distro: Hem quedat en que GNU és un sistema operatiu, que s'utilitza amb Linux com a nucli. El que passa és que no instal·lem tot el que té GNU, sinó que volem els programes que puguem necessitar. Una distribució porta una sèrie de software preinstal·lat, tals com un entorn gràfic, intèrpret, gestor de paquets i altres coses
HDD: El disc dur de tota la vida. Si no saps quin tens, segurament és aquest
SSD: Un disc d'estat sòlid. Tècnicament no és un disc dur, però en un abús de llenguatge a vegades li diem així. És molt més ràpid que un HDD, però té escriptures limitades, de manera que no convé abusar-ne. Per això normalment tenim un SSD petit on posem el sistema operatiu, i un HDD gran amb les dades

1 comentari:

  1. Interessant article, Oriol. Jo tinc l'entorn de desenvolupament empaquetat com a OVA que pot ser útil, et poso la URL al nom del meu comentari.

    ResponElimina