domingo, 2 de julio de 2017

Linux: Set permissions 644 for files, 755 for directories

The easiest way is to do:
chmod -R u+rwX,go+rX,go-w /foo
which basically means:
to change file modes -Recursively by giving:
  • user: read, write and eXecute permissions,
  • group and other users: read and eXecute permissions, but not -write permission.
Please note that X will make a directory executable, but not a file, unless it's already searchable/executable.

Linux: Patch file

Per crear l'arxiu diff:

diff -Naur original_folder_file modified_folder_file > whatever.diff

Per aplicar-lo:

patch file_target < whatever.diff


miércoles, 19 de abril de 2017

Linux: Clonar una disc dur en un altre de diferent capacitat.

NOTA: En cap cas aquest article es cap GUIA, (repeteixo NO es una guia) per a ningú, simplement és el que JO vaig fer i ho anoto per tenir una referència en cas d'haver-ho de tornar a fer.

En el meu cas vaig clonar un disc dur de 120GB a un de capacitat de 250GB. Pel que he llegit no és possible clonar un de major capacitat que el disc dur destí (encara que la capacitat ocupada del disc dur font sigui inferior al disc dur destí).

1. El disc dur de 120GB tenia 6 particions i per a poder tenir les mateixes particions al disc dur destí vaig haver de configurar-lo com a GTP:

parted /dev/sdd_disc_dur_destí
mklabel gpt

2. Vaig provar de fer la clonació amb la comanda dd:

dd if=/dev/sdd_disc_dur_font of=/dev/sdd_disc_dur_desti bs=64K conv=noerror,sync

M'ho va clonar bé al cap d'uns 40 min però el disc de 250GB es va convertir en un disc de 120GB i no hi havia manera de recuperar l'espai perdut. Per provar de recuperar l'espai lliure em vaig carregar TOTES les particions del disc dur nou però no va servir de res. Així vaig executar GParted i només executar-lo em va demanar si volia recuperar l'espai que faltava i al dir que si es van recuperar tots.
NOTA: Ignoro si al fer això abans de carregar-me les particions hagués funcionat igual de bé.

3. Aquesta vegada vaig decidir clonar-ho amb el Clonezilla. Vaig segur el tutorial i Mode Expert amb l'opcio -k1 i aquesta vegada el disc dur tenia tota la capacitat però em va expandir PROPORCIONALMENT les 2 particions de Linux i Windows i jo només volia expandir la Linux.

4. Així, vaig tornar a fer-ho amb el Clonezilla i sense l'opció -k1 i el resultat va ser el mateix que fent dd. Aquesta vegada abans de carregar-me res, vaig executar GParted i vaig poder recuperar l'espai "unallocated", pel que es dedueix que al punt .2 amb dd hagués funcionat igual.

En resum que utilitzant dd o Clonezilla amb Gparted després de completar la clonació, em van solventar el tema.

domingo, 9 de abril de 2017

Linux: Nova instància de Dropbox

Serveix bàsicament per tenir una altra instància de Dropbox a part de la que ja tenim.
Extret de: http://stackoverflow.com/questions/37380829/how-to-multiple-dropbox-instances-in-linux

Open a terminal and paste the following commands:
$ mkdir "$HOME"/.dropbox-alt
$ ln -s "$HOME/.Xauthority" "$HOME/.dropbox-alt/"
$ HOME="$HOME/.dropbox-alt"
$ /home/$USER/.dropbox-dist/dropboxd
Dropbox setup wizard window will appear. Finish the setup similarly as described in Method -1
start Dropbox from terminal
$ /home/$USER/.dropbox-dist/dropboxd
start Alternate-Dropbox from terminal
$ HOME="$HOME/.dropbox-alt" && /home/$USER/.dropbox-dist/dropboxd
Note:
You can create a small script with the above commands to start Dropbox.
One can put the script at startup. Don't forget to give the script execution permission.

chmod +x /path/to/script

I have tested the second method. Hope it will be useful.

NOTA: El directori arrel SEMPRE ha de ser "dropbox", l'aplicació (per ara) no permet canviar-ho, és a dir, podem posar la carpeta de Dropbox on vulguem però si el directori final NO és "dropbox", crearà una carpeta dropbox al directori que haguem indicat.

NOTA 2: Per a que funcionés al iniciar KDE, vaig posar l'script als scripts d'inici utilitzant "System settings" / Auto arranque / Archivo de script.

martes, 28 de marzo de 2017

Linux: Instal·lar paquets Debian amb apt encara que un falli (instal·la un per un)

A vegades volem instal·lar una sèrie de paquets però si apt no troba un paquet s'atura. Podem instal·lar-los un per un. Per exemple:

for i in python-all-dev libweather-ion6 libboost-program-options1.55.0 libqt4-network; do sudo apt-get install -y $i; done

Linux: Thunderbird system tray

Si utilitzem l'extensió FireTray, tot va ok però per defecte no permet fet el toggle d'obrir/minimitzar amb un clic de botó esquerre. La sol·lució és (extreta de https://github.com/foudfou/FireTray/issues/147):

  • In Thunderbird:
    'Edit' - 'Preferences' (belonging to Thunderbird) - 'Advanced' (cogwheel symbol)
    - 'General' (Tab) - 'Config Editor' (OK to warning: I'll be careful, I promise)
  • In list search for "extensions.firetray.with_appindicator" and
    double click (changing value from 'true' to 'false')
    [just spotted that this was recommended by foudfou above - that's the real workaround]
  • Restart Thunderbird
  • Thunderbird-Icon - Left Click - 'Preferences' (belonging to FireTray)
  • Enable mail notification - message count type: x unread messages
  • Mail notification type:
    display new message count, Text color: ...your favorite color...
~

Linux: File association


Si fent el que la captura suggereix (apart de la pertinent associació 'tipus d'arxiu/app' que es fa amb el menú contextual) no conseguim que el tipus d'arxiu en qüestió sigui obert per defecte per la app desitjada podria ser que el sistema analitzi les capçaleres de l'arxiu i l'obri segons aquestes capçaleres, ignorant l'app que nosaltres volem. Per evitar que el sistema fagi aquest anàlisi:

Utilitzarem l'exemple dels arxius TPL que jo volia que s'obrissin com a arxius de text i no com a HTML.

1. Obrir l'arxiu /usr/share/mime/packages/freedesktop.org.xml

2. Buscar el tipus d'arxiu que diu que es TPL, Documento HTML i Documento XML

3. Borrar tot el contingut de "magic":

    <magic priority="50">
      <match value="&lt;!DOCTYPE HTML" type="string" offset="0:256"/>
      <match value="&lt;!doctype html" type="string" offset="0:256"/>
      <match value="&lt;HEAD" type="string" offset="0:256"/>
      <match value="&lt;head" type="string" offset="0:256"/>
      <match value="&lt;TITLE" type="string" offset="0:256"/>
      <match value="&lt;title" type="string" offset="0:256"/>
      <match value="&lt;HTML" type="string" offset="0:256"/>
      <match value="&lt;html" type="string" offset="0:256"/>
      <match value="&lt;SCRIPT" type="string" offset="0:256"/>
      <match value="&lt;script" type="string" offset="0:256"/>
      <match value="&lt;BODY" type="string" offset="0"/>
      <match value="&lt;body" type="string" offset="0"/>
      <match value="&lt;!--" type="string" offset="0"/>
      <match value="&lt;h1" type="string" offset="0"/>
      <match value="&lt;H1" type="string" offset="0"/>
      <match value="&lt;!doctype HTML" type="string" offset="0"/>
      <match value="&lt;!DOCTYPE html" type="string" offset="0"/>
    </magic>
   
    i
   
    <magic priority="40">
      <match value="&lt;?xml" type="string" offset="0"/>
      <match value="&lt;!--" type="string" offset="0"/>
    </magic>
   
4. Actualitzar-ho amb: sudo update-mime-database /usr/share/mime

5.  Ara el TPL no hauria de tenir cap associacio si no l'hi hem fet previament i ja podem assignar-li l'associació que vulguem.