LaTeX è un linguaggio di markup basato sul TeX – un programma di tipografia digitale progettato da Donald Knuth.
I pacchetti relativi tex minimi su Debian sono i seguenti (discendono dall’installazione di texlive-base, e dipendono dalla distribuzione textlive):
- libkpathsea5
- luatex
- tex-common
- Pacchetto con file in comune e documentazione generica su TeX e Debian
- texlive-common
- texlive-doc-base
- Documentazione TeX Live
- texlive-binaries
- texlive-base
Pacchetti necessari per usare LaTeX.
Pacchetti aggiuntivi.
- preview-latex-style
- texlive-pictures
- texlive-latex-extra
Purtroppo, icedove (il gemellino nobrand di thunderbird) mi lascia spesso perplesso. In effetti sono i coder di mozilla che mi colpiscono.
Premesse: In ambiente Linux i permessi sono importanti, e di default la creazione di file da parte di un utente comune è sottoposta ad un codice di permessi che è -rw-r–r– , detto in ottale 644, detto in termini umani: l’utente può leggere e scrivere/modificare il file, mentre gruppi e altri possono solo leggerlo/copiarlo – e poi modificarselo a casina propria.
Situazione: Ho di recente aggiornato un mail browser su una box per sperimentare ed Icedove è passato dalla versione 2.* alla versione 3.0.11 – molto bene. Alcuni cambiamenti ci sono stati, ma li ho percepiti come superficiali (solite cose di configurazione, opzioni, ecc.).
Problema: Salvando un attachment col nuovo programma viene fuori invece una cosa curiosa:
-rw------- 1 simone users 29 Nov 18 11:58 zzz.txt
Il file ha permessi 600… wtf?
La mia umask è 0022 (che setta i permessi a 644, come vorrei), ma icedove se ne frega… No buono.
Comincio a cercare un’opzione che mi permetta di settare l’aspetto ma non trovo niente. Invece mi imbatto in questo bug. Mmm, molto male.
Leggendo questo commento
From the use of “06*” in the code, it seems that 00600 is hard-coded
in more places in nsMessenger.cpp that handles attachment saving in
v3 series.
ma non potendoci credere (hanno hard-codato i permessi? O_o Are you crazy?), decido di verificare.
$ strace -ff -o /tmp/strace_icedove /usr/lib/icedove/icedove
L’opzione -ff permette di seguire i fork del programma e generare dei file di log diversi, ciascuno col nome del pid del processo come suffisso.
Dunque uso icedove, mi spedisco un file con attachment, lo salvo sul fs (e ovviamente ha i permessi ristretti), chiudo tutto.
Cerco di capire se c’è una modifica al setting di umask per qualche motivo nei log di strace:
$ grep -C2 umask strace_icedove.4*
-open("/usr/lib/icedove/res/hiddenWindow.html", O_RDONLY|O_LARGEFILE) = 24
umask(0777) = 022
umask(022) = 0777
-stat64("/usr/lib/icedove/res/hiddenWindow.html", {st_mode=S_IFREG|0644, st_size=117, …}) = 0
-sched_get_priority_min(SCHED_OTHER) = 0
Un cambio e poi un reset immediatamente dopo (chissà, ci han ripensato?).
E quindi che può essere… come diceva il bug?
$ grep zzz.txt strace_icedove.4*
stat64("/tmp/zzz.txt", 0xab97de8c) = -1 ENOENT (No such file or directory)
lstat64("/tmp/zzz.txt", 0xab97de8c) = -1 ENOENT (No such file or directory)
open("/tmp/zzz.txt", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0600) = 42
stat64("/tmp/zzz.txt", {st_mode=S_IFREG|0600, st_size=0, …}) = 0
stat64("/tmp/zzz.txt", {st_mode=S_IFREG|0600, st_size=29, …}) = 0
lstat64("/tmp/zzz.txt", {st_mode=S_IFREG|0600, st_size=29, …}) = 0
lstat64("/tmp/zzz.txt", 0xb28ff06c) = -1 ENOENT (No such file or directory)
Opporcavacca, l’hanno fatto sul serio:
Interessante il fatto che l’umask del sistema (0022 per lo più) avrebbe anche un senso, ma richiederebbe di agire su un mode 0666 (l’umask toglie, non mette).
Da man 2 open si evince chiaramente che O_CREAT necessita del mode, e che calcola
mode & ~umask
cioè in questo caso
0600 = 110 000 000 0022 = 000 010 010 e ~0022 = 111 101 101 & 110 000 000 = 111 101 101 - ------------- 110 000 000
quindi sempre 0600 (ovviamente).
A leggere da qui pare che il problema sussista da tanto tempo…
Con la scusa di titanio ho ben deciso di provare aptitude invece del solito apt per gestire i pacchetti.
Non che cambi veramente qualcosa, poichè aptitude è semplicemente un frontend ad apt.
Mi ha fatto sorridere rivedere un’interfaccia ncurses che mi ricordava dselect, e d’improvviso ri-rendermi conto che mi trovavo spaesato…

Fortuna si può usare da cli.
Diamoci un po’ di tempo…
Ho deciso di installare Debian su Titanio tramite usb che mi viene comodo.
Per le cronache, Titanio è un Lenovo E420s.
Ho deciso che voglio metterci una Sid (rischio!) per stare aggiornato, dunque parto dalla testing – Wheezy – in modo da avere meno cose da aggiornare nel passaggio ad unstable.
Il materiale l’ho scaricato dal sito Debian (dopo aver letto le faq, le info sul netinst, e altre pagine lì “vicino”): l’immagine di boot da copiare nella chiavetta da 256MB e l’iso della netinst a 64 bit.
Preparata la chiavetta con l’iso dentro, ho avviato il portatile e avviato da usb.
Il Debian Installer (DI)è solo da seguire nella scelta della lingua e le varie impostazioni.
Primo stop: durante l’auto-impostazione dell’hw per la rete, il DI suggerisce firmware non presenti nella USB (iwlwifi-100-5.ucode e soci). Come scritto nella documentazione, il file da scaricare relativo i firmware è qui.
Passati i pacchetti per il firmware, DI ha visto la wireless ed è andato avanti con le sue domande “guida”.
Bella sorpresa vedere che Wheezy propone un kernel abbastanza nuovo come il 2.6.39.
L’installazione è finita senza intoppi – escludendo quello banale segnalato del firmware – e alla fine mi sono limitato ad aggiungere vim, less, netcat, nmap, diff ed ssh.
I tasti funzionalità del laptop vanno out-of-the-box (lampadina extra, illuminazione monitor, ecc.).
Nota di colore: il boot è stato immediato – il tempo di selezionare il kernel su GRUB, e il prompt per il login è comparso. Assurdo.
—
La lista dei pacchetti attualmente installati:
install base-files 6.4 install base-passwd 3.5.23 install libc6 2.13-10 install perl-base 5.12.4-1 install mawk 1.3.3-15 install debconf 1.5.40 install libc-bin 2.13-10 install gcc-4.6-base 4.6.1-4 install multiarch-support 2.13-10 install libgcc1 1:4.6.1-4 install debianutils 4.0.2 install libbz2-1.0 1.0.5-6 install libselinux1 2.0.98-1.1 install libattr1 1:2.4.46-3 install libacl1 2.2.51-3 install coreutils 8.5-1 install liblzma2 5.0.0-2 install dash 0.5.5.1-7.4 install libncurses5 5.9-1 install bash 4.1-3 install bsdutils 1:2.19.1-4 install liblocale-gettext-perl 1.05-7 install libdb5.1 5.1.25-10 install libgdbm3 1.8.3-10 install libtext-iconv-perl 1.7-4 install libtext-charwidth-perl 0.04-7 install libtext-wrapi18n-perl 0.06-7 install debconf-i18n 1.5.40 install diffutils 1:3.0-1 install e2fslibs 1.42~WIP-2011-07-02-1 install libpam0g 1.1.3-2 install libpam-modules-bin 1.1.3-2 install libpam-modules 1.1.3-2 install libuuid1 2.19.1-4 install libblkid1 2.19.1-4 install libcomerr2 1.42~WIP-2011-07-02-1 install libss2 1.42~WIP-2011-07-02-1 install ncurses-bin 5.9-1 install lsb-base 3.2-27 install libsepol1 2.0.42-1 install libmount1 2.19.1-4 install mount 2.19.1-4 install insserv 1.14.0-2.1 install initscripts 2.88dsf-13.11 install libslang2 2.2.4-2 install e2fsprogs 1.42~WIP-2011-07-02-1 install findutils 4.4.2-1+b1 install gcc-4.4-base 4.4.6-7 install gcc-4.5-base 4.5.3-3 install grep 2.9-1 install gzip 1.4-1 install hostname 3.06 install libpam-runtime 1.1.3-2 install libstdc++6 4.6.1-4 install login 1:4.1.4.2+svn3283-3 install ncurses-base 5.9-1 install sensible-utils 0.0.6 install zlib1g 1:1.2.3.4.dfsg-3 install xz-utils 5.0.0-2 install perl-modules 5.12.4-1 install perl 5.12.4-1 install passwd 1:4.1.4.2+svn3283-3 install sed 4.2.1-9 install tzdata 2011h-3 install sysvinit-utils 2.88dsf-13.11 install sysv-rc 2.88dsf-13.11 install util-linux 2.19.1-4 install sysvinit 2.88dsf-13.11 install tar 1.25-3 install adduser 3.113 install libreadline6 6.2-2 install libusb-0.1-4 2:0.1.12-18 install gpgv 1.4.11-3 install gnupg 1.4.11-3 install debian-archive-keyring 2010.08.28 install apt 0.8.15.2 install apt-utils 0.8.15.2 install libboost-iostreams1.42.0 1.42.0-4+b1 install libncursesw5 5.9-1 install libsigc++-2.0-0c2a 2.2.9-1 install libcwidget3 0.5.16-3.1 install libxapian22 1.2.5-1 install libept1 1.0.5 install libsqlite3-0 3.7.7-2 install aptitude 0.6.3-4 install bsdmainutils 8.2.3 install cpio 2.11-7 install cron 3.0pl1-118 install dmidecode 2.9-1.2 install groff-base 1.21-6 install net-tools 1.60-24.1 install ifupdown 0.7~alpha5+really0.6.10 install install-info 4.13a.dfsg.1-6 install info 4.13a.dfsg.1-6 install iproute 20110629-1 install libnfnetlink0 1.0.0-1 install iptables 1.4.11.1-3 install libssl1.0.0 1.0.0d-3 install iputils-ping 3:20101006-1+b1 install isc-dhcp-common 4.1.1-P1-17 install isc-dhcp-client 4.1.1-P1-17 install libboost-iostreams1.46.1 1.46.1-5 install libidn11 1.22-2 install libnewt0.52 0.52.11-2.1 install libpipeline1 1.2.0-3 install libpopt0 1.16-1 install libssl0.9.8 0.9.8o-7 install libudev0 172-1 install logrotate 3.7.8-6 install man-db 2.6.0.2-2 install manpages 3.28-1 install module-init-tools 3.16-1 install nano 2.2.6-1 install readline-common 6.2-2 install netbase 4.46 install netcat-traditional 1.10-39 install procps 1:3.2.8-10 install rsyslog 5.8.3-1 install tasksel-data 2.89 install tasksel 2.89 install traceroute 1:2.0.15-1 install udev 172-1 install vim-common 2:7.3.154+hg~74503f6ee649-2+b1 install vim-tiny 2:7.3.154+hg~74503f6ee649-2+b1 install wget 1.12-5 install whiptail 0.52.11-2.1 install locales 2.13-10 install console-terminus 4.30-2 install xkb-data 2.1-2 install keyboard-configuration 1.70 install console-setup 1.70 install kbd 1.15.3-5 install firmware-iwlwifi 0.32 install firmware-realtek 0.32 install busybox 1:1.18.4-2 install libklibc 1.5.23-2 install klibc-utils 1.5.23-2 install initramfs-tools 0.99 install libuuid-perl 0.02-4+b1 install linux-base 3.3 install linux-image-2.6.39-2-amd64 2.6.39-3 install libpci3 1:3.1.7-12 install pciutils 1:3.1.7-12 install libusb-1.0-0 2:1.0.8-4 install usbutils 1:001-1 install acpi 1.5-3 install acpid 1:2.0.11-1 install acpi-support-base 0.138-9 install libdevmapper1.02.1 2:1.02.63-3 install dmsetup 2:1.02.63-3 install eject 2.1.5+deb1+cvs20081104-8 install laptop-detect 0.13.7 install libexpat1 2.0.1-7 install discover-data 2.2010.10.18 install libdiscover2 2.1.2-5.1 install discover 2.1.2-5.1 install installation-report 2.45 install popularity-contest 1.53 install libgpg-error0 1.10-0.3 install libgcrypt11 1.4.6-7 install libkeyutils1 1.4-6 install libtasn1-3 2.9-4 install libwrap0 7.6.q-21 install libxml2 2.7.8.dfsg-3 install ucf 3.0025+nmu2 install foomatic-filters 4.0.7-1 install foomatic-db-engine 4.0.7-2 install libasound2 1.0.24.1-2 install libpcre3 8.12-3 install libglib2.0-0 2.28.6-1 install libatk1.0-data 2.0.1-2 install libatk1.0-0 2.0.1-2 install libavahi-common-data 0.6.30-5 install libavahi-common3 0.6.30-5 install libdbus-1-3 1.4.12-5 install libavahi-client3 0.6.30-5 install libavahi-core7 0.6.30-5 install libgnutls26 2.10.5-2 install libkrb5support0 1.9.1+dfsg-1+b1 install libk5crypto3 1.9.1+dfsg-1+b1 install libkrb5-3 1.9.1+dfsg-1+b1 install libgssapi-krb5-2 1.9.1+dfsg-1+b1 install libcups2 1.4.7-1 install libcupscgi1 1.4.7-1 install libcupsdriver1 1.4.7-1 install libjpeg8 8c-2 install libpng12-0 1.2.46-1 install libjpeg62 6b1-2 install libtiff4 3.9.5-1 install libcupsimage2 1.4.7-1 install libcupsmime1 1.4.7-1 install libcupsppdc1 1.4.7-1 install libdatrie1 0.2.4-3 install libdbus-glib-1-2 0.94-4 install libffi5 3.0.9-7 install libfreetype6 2.4.4-2 install ttf-dejavu-core 2.33-1 install ttf-freefont 20100919-1 install fontconfig-config 2.8.0-3 install libfontconfig1 2.8.0-3 install libjasper1 1.900.1-9 install libxau6 1:1.0.6-3 install libxdmcp6 1:1.1.0-3 install libxcb1 1.7-3 install libx11-data 2:1.4.3-2 install libx11-6 2:1.4.3-2 install libgdk-pixbuf2.0-0 2.23.5-2 install libgutenprint2 5.2.7-2 install x11-common 1:7.6+7 install libice6 2:1.0.7-2 install libnl1 1.1-7 install libpixman-1-0 0.22.2-1 install libsensors4 1:3.3.0-4 install libsm6 2:1.2.0-2 install libthai-data 0.1.15-2 install libthai0 0.1.15-2 install libxcb-render0 1.7-3 install libxcb-shm0 1.7-3 install libxcomposite1 1:0.4.3-2 install libxfixes3 1:5.0-4 install libxrender1 1:0.9.6-2 install libxcursor1 1:1.1.12-1 install libxdamage1 1:1.1.3-2 install libxext6 2:1.3.0-3 install libxft2 2.2.0-3 install libxi6 2:1.4.3-3 install libxinerama1 2:1.1.1-3 install libxrandr2 2:1.3.2-2 install libxt6 1:1.1.1-2 install libxxf86vm1 1:1.1.1-2 install libdb4.8 4.8.30-9 install libreadline5 5.2-8 install bc 1.06.95-2 install libcap2 1:2.21-2 install libgeoip1 1.4.8+dfsg-1 install libisc62 1:9.7.3.dfsg-1+b1 install libdns69 1:9.7.3.dfsg-1+b1 install libisccc60 1:9.7.3.dfsg-1+b1 install libisccfg62 1:9.7.3.dfsg-1+b1 install libbind9-60 1:9.7.3.dfsg-1+b1 install liblwres60 1:9.7.3.dfsg-1+b1 install bind9-host 1:9.7.3.dfsg-1+b1 install libmagic1 5.04-5+b1 install file 5.04-5+b1 install libsasl2-2 2.1.24~rc1.dfsg1+cvs2011-05-23-4 install libldap-2.4-2 2.4.25-1.1 install mime-support 3.51-1 install python2.6-minimal 2.6.7-3 install python2.6 2.6.7-3 install python-minimal 2.6.7-1 install python 2.6.7-1 install python-support 1.0.14 install tcpd 7.6.q-21 install acpi-fakekey 0.138-9 install libxmu6 2:1.1.0-2 install libxpm4 1:3.5.9-1 install libxaw7 2:1.0.9-2 install libxmuu1 2:1.1.0-2 install libgmp10 2:5.0.1+dfsg-7 install libgmpxx4ldbl 2:5.0.1+dfsg-7 install libppl9 0.11.2-4 install libpwl5 0.11.2-4 install libppl-c4 0.11.2-4 install libcloog-ppl0 0.15.9-3 install libmpfr4 3.0.1-5 install libmpc2 0.9-3 install cpp-4.6 4.6.1-4 install cpp 4:4.6.1-2 install x11-xserver-utils 7.6+3 install powermgmt-base 1.31 install pm-utils 1.4.1-8 install acpi-support 0.138-9 install anacron 2.3-14 install libapm1 3.2.2-14 install apmd 3.2.2-14 install libdaemon0 0.14-2 install avahi-autoipd 0.6.30-5 install dbus 1.4.12-5 install avahi-daemon 0.6.30-5 install libbluetooth3 4.94-3 install libcap-ng0 0.6.6-1 install libgirepository-1.0-1 0.10.8-2 install gir1.2-glib-2.0 0.10.8-2 install python-gobject 2.28.6-4 install python-dbus 0.84.0-1 install bluez 4.94-3 install bluetooth 4.94-3 install bluez-alsa 4.94-3 install libijs-0.35 0.35-7 install liblcms1 1.19.dfsg-1 install libpaper1 1.1.24+nmu1 install libopenjpeg2 1.3+dfsg-4 install libpoppler13 0.16.7-2 install libslp1 1.2.1-7.8 install poppler-utils 0.16.7-2 install libjbig2dec0 0.11-1 install gs-cjk-resource 1.20100103-2 install libgs9-common 9.02~dfsg-3 install libgs9 9.02~dfsg-3 install gsfonts 1:8.11+urwcyr1.0.7~pre44-4.2 install ghostscript 9.02~dfsg-3 install cups-common 1.4.7-1 install cups-client 1.4.7-1 install openssl 1.0.0d-3 install ssl-cert 1.0.28 install cups-ppdc 1.4.7-1 install cups 1.4.7-1 install bluez-cups 4.94-3 install libgstreamer0.10-0 0.10.35-1 install iso-codes 3.27-1 install libgstreamer-plugins-base0.10-0 0.10.35-1 install bluez-gstreamer 4.94-3 install cmap-adobe-japan1 0+20090930-2 install libcpufreq0 007-1 install cpufrequtils 007-1 install ghostscript-cups 9.02~dfsg-3 install cups-driver-gutenprint 5.2.7-2 install defoma 0.11.12 install dictionaries-common 1.11.5 install fontconfig 2.8.0-3 install foomatic-db-compressed-ppds 20110617-1 install geoip-database 20110709-1 install hdparm 9.32-1 install hicolor-icon-theme 0.12-1 install libsnmp-base 5.4.3~dfsg-2.2 install libperl5.12 5.12.4-1 install libsnmp15 5.4.3~dfsg-2.2 install libhpmud0 3.11.5-1.1 install hpijs 3.11.5-1.1 install ispell 3.3.02-5 install ienglish-common 3.3.02-5 install ibritish 3.3.02-5 install libcairo2 1.10.2-6 install libfont-freetype-perl 0.03-1+b1 install libfontenc1 1:1.1.0-1 install libgtk2.0-common 2.24.4-3 install libpango1.0-0 1.28.4-1 install shared-mime-info 0.90-1 install libgtk2.0-0 2.24.4-3 install libglade2-0 1:2.6.4-1 install libglib2.0-data 2.28.6-1 install libgtk2.0-bin 2.24.4-3 install libiw30 30~pre9-5 install libjpeg-progs 8c-2 install libnl2 2.0-1 install libnss-mdns 0.10-3.1 install libpaper-utils 1.1.24+nmu1 install libpciaccess0 0.12.1-1 install libpcsclite1 1.7.2-2 install libsasl2-modules 2.1.24~rc1.dfsg1+cvs2011-05-23-4 install libtalloc2 2.0.5-1 install libtdb1 1.2.9-1 install libwbclient0 2:3.5.9~dfsg-1 install libx86-1 1.1+ds1-7 install libxfont1 1:1.4.3-2 install min12xxw 0.0.9-4 install pnm2ppa 1.13-2 install poppler-data 0.4.4-1 install python-cairo 1.8.8-1+b2 install python-gobject-cairo 2.28.6-4 install radeontool 1.6.1-1 install samba-common 2:3.5.9~dfsg-1 install samba-common-bin 2:3.5.9~dfsg-1 install sgml-base 1.26+nmu1 install smbclient 2:3.5.9~dfsg-1 install util-linux-locales 2.19.1-4 install vbetool 1.1-2 install wbritish 6-3 install wireless-tools 30~pre9-5 install wpasupplicant 0.7.3-3 install xfonts-encodings 1:1.0.4-1 install xfonts-utils 1:7.6+1 install x-ttcidfont-conf 32+nmu2 install xml-core 0.13 install xscreensaver-data 5.14-1 install xscreensaver 5.14-1 install pcmciautils 018-3 install powertop 1.97-2 install gettext-base 0.18.1.1-3 install libfuse2 2.8.5-4 install grub-common 1.99-8 install os-prober 1.47 install grub2-common 1.99-8 install grub-pc-bin 1.99-8 install grub-pc 1.99-8 install openssh-blacklist 0.4.1 install openssh-blacklist-extra 0.4.1 install libbsd0 0.3.0-1 install libedit2 2.11-20080614-2 install libgpm2 1.20.4-3.4 install openssh-client 1:5.5p1-6 install openssh-server 1:5.5p1-6 install vim-runtime 2:7.3.154+hg~74503f6ee649-2 install vim 2:7.3.154+hg~74503f6ee649-2+b1 install xauth 1:1.0.6-1 install ssh 1:5.5p1-6 install diff 1:3.0-1 install less 444-1 install netcat 1.10-39 install libpcap0.8 1.1.1-8 install liblua5.1-0 5.1.4-5 install nmap 5.21-1.1
Dopo un paio di settimane di assenza, mi sono accorto che è entrata nei repository di Debian Sid la versione 5 di Iceweasel/Firefox.
Bene. Minimo sbattimento con apt-get install.
Già che c’ero e smandruppavo là in mezzo, ho anche controllato che MozRepl (di cui ho già parlato e che sfrutto per un paio di automatismi) girasse, e ho visto che la versione 1.1beta2 funge perfettamente per i miei scopi.
Felice per tutto questo, mi sono anche andato a guardare Shockwave Flash player, e ho ritrovato una versione a 64 bit funzionante dagli Adobe labs.
Mboh, che dire: funzia tutto, son contento.
Lo sapevate che se cancellate una configurazione (per dirne una: apache2.conf) e poi cercate di ripristinare con un reinstall del pacchetto, il sistema Debian non fa una piega?
Sapevatelo!
E perchè?
Perchè si assume che se avete cancellato una config di sistema voi sappiate che state facendo. Giusto. (A quanto pare però non si suppone che se voglio reinstallare io sappia cosa stia facendo.
)
You have to especially tell the packaging system to reinstall config files because when they are gone, it is assumed that you want them to stay deleted. “aptitude -o DPkg::Options::=’–force-confmiss’ reinstall $packagename” will restore them (man dpkg for details).
Dopo un po’ di aggiornamenti sulla mia debian Sid, ho un warning che mi spamma in maniera fastidiosa. WTF?
dpkg-query: warning: parsing file ‘/var/lib/dpkg/available’ near line 473010 package ‘cnews’:
error in Version string ‘cr.g7-40.4′: version number does not start with digit
dpkg 1.16.0.2
‘Sto messaggio esce ad ogni giro di cron.daily, dunque abbiamo da capirci.
Per togliere il warning:
che pulisce il file /var/lib/dpkg/available (è un file che cacha informazioni sui pacchetti della distro).