Debian 9 Stretch Xfce telepítése és személyre szabása by kovaax

Utolsó módosítás: 2018.02.03

Mese
Hosszú évek óta saját építésű Debian-t használtam, de mellette jó pár éve van fent Fedora Xfce Spin is a kisebbik gépemen, ami végül is tetszik, jól használható, takarékos az erőforrásokkal, és még Linusnak is jó volt egy ideig. Amikor kijött a Stretch első bétája, Xfce-vel raktam fel, bő fél évig nagy megelégedéssel tesztelgettem, ezért úgy döntöttem, hogy ha kijön stabilnak, azzal fogom felrakni.
Plusz, hogy valami extra is legyen, veszek egy ssd-t is, mivel eddig egy Green 2 terás vinyón volt az oprendszer is (nem röhög!), de mivel eléggé ki volt herélve, nem okozott különösebb problémát a lassúsága. Van mellette egy 250 gigás gyorsabb vinyó is, de annak a sorsa bizonytalan volt sokáig, így nem költöztettem át rá a rendszert, a fontosabb dolgokról arra készítettem mentéseket, a swap került rá egy idő után, illetve azon teszteltem a Stretch-et is. A terv az volt, hogy a swap marad a 250-en, a 2 teráson lévő két rendszer particióból lesz /var és /tmp, plusz marad érintetlenül rajta a /home és /data, az ssd-re pedig megy a rendszer az ő hatalmas ~3 gigás méretével (mondtam már, hogy nem röhög?).
Aztán múlt hétvégén kijött a Stretch, hétfőn megvettem az ssd-t, elmentem jógázni, hogy kívül-belül megtisztulva kezdjek bele a telepítésbe este, ami valahogy így nézett ki:

Előkészületek
1. Készítettem egy netinstall cd-t és egy gparted cd-t.

2. Utoljára bebootoltam a Jessie-t, a Thunderbird-ben mondtam egy File/Compact Folders-t, illetve egy Edit/Network & Disk Space/Clear Now-t, hogy lecsökkentsem a levél könyvtár méretét, majd lementettem a 250-es vinyóra, plusz még amiket menteni szoktam, mert mi van, ha partició átméretezés közben megy el az áram...

Hirdetés

3. root-ként lementettem a /etc könyvtárat és a dpkg -l kimenetét, ha esetleg később szükség volna rá.

4. Szöveges terminálból kitöröltem a .mozilla és a .thunderbird kivételével gyakorlatilag az összes rejtett könyvtárat a /home/kovaax alól.

5. Kikapcsoltam a gépet, majd beszereltem az ssd-t, amivel mondjuk elég sok időt eltoltam, míg olyan nem lett, amilyennek szerettem volna. A hálózati kábelt kihúzva hagytam, hogy installkor ne tudjon dhcp címet szerezni.

6. Bebootoltam a gparted lemezről, átméreteztem a két rendszeparticiót a 2 terás vinyón, hogy az új igényeknek megfeleljenek.

7. Kicseréltem a lemezt a Debian netinstallra, és bebootoltam róla.

Debian 9 Stretch install
[Graphical install]
Language: [Hungarian - Magyar]
A telepítést a kijelölt nyelven folytatja? [Igen]
Válassza ki a helyét: [Magyarország]
Billentyűzet beállítása: [magyar]
Hálózat beállítása: [Hálózat kézi beállítása]
ip: <192.168.0.72>
maszk: <255.255.255.0>
átjáró: <192.168.0.1>
névkiszolgáló: <192.168.0.1>
gépnév: <otthon>
tartomány név: <kovaax.hu>
Felhasználók és jelszavaik felvétele:
root jelszó: <>
ellenőrzés: <>
Új felhasználó teljes neve: <kovaax>
(hálózat visszadugása)
Felhasználóneve: <kovaax>
Jelszava: <>
ellenőrzés: <>
Lemezek particionálása: [Kézi]
itt ez lett kialakítva:
/: /dev/sda1 20 Gb - ssd
/var: /dev/sdb1 16 Gb -2 terás hdd
/tmp: /dev/sdb2 8 Gb
/home: /dev/sdb3
swap: /dev/sdc1 -250 gigás hdd

A csomagkezelő beállítása: Átnézzek még egy cd-t? [nem]
A választandó Debian tükör országa: [Németország]
HTTP-proxy: <>
popularity-contest konfigurálása: [igen]
Telepíthető szoftverek:
* [Debian desktop environment]
* [xfce]
* [Szokásos rendszereszközök]

A GRUB rendszerbetöltő merevlemezre: mbr: [igen] </dev/sda>
A rendszeróra az UTC szerint jár? [igen]
REBOOT

Tűzfal beállítása (root-ként)
Még mielőtt bármit tennénk, ugye, elindítjuk a tűzfalat.

Amit logolni szeretnénk a tűzfalon, abban szerepelnie kell az "iptables: " szövegnek, erre fog szűrni az rsyslog:
vi fireval.sh:
...
iptables -A INPUT -j LOG --log-prefix "iptables: "
...

Az rsyslog-nak megmondjuk, hogy ezeket a sorokat külön fájlba rakja:
vi /etc/rsyslog.d/iptables.conf:
:msg, contains, " iptables: " -/var/log/iptables.log
& stop

Az új logot is rotálni kell:
vi /etc/logrotate.d/iptables:
/var/log/iptables.log
{
rotate 8
weekly
missingok
notifempty
delaycompress
compress
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}

Újraindítjuk az rsyslog-ot, futtatjuk a tűzfal scriptet, majd felrakjuk az iptables-persistent csomagot, ami elmenti a scriptben lévő szabályokat, és újraindításkor automatikusan betölti őket.
systemctl restart rsyslog.service
./fireval.sh
apt-get --no-install-recommends install iptables-persistent

Ha módosítjuk a tűzfal szabályokat, újra el kell menteni őket:
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

Csomagforrások beállítása, extra csomagok felrakása (root-ként)
vi /etc/apt/sources.list:
# deb-src-ket kikommentezni, contrib non-free -t hozzáadni
deb http://ftp.de.debian.org/debian/ stretch main non-free contrib
deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb http://ftp.de.debian.org/debian/ stretch-updates main contrib non-free
deb http://www.deb-multimedia.org stretch main non-free

apt-get update
apt-get --no-install-recommends install deb-multimedia-keyring
apt-get update
# firmware-k:
apt-get --no-install-recommends install firmware-linux firmware-realtek amd64-microcode
# csomaglisták frissítéséhez egy jó ki eszköz:
apt-get --no-install-recommends install apticron
# pdf-be szoktam nyomtatni, mert nincs itthon nyomtatóm:
apt-get --no-install-recommends install printer-driver-cups-pdf
# lemezek monitorozásához:
apt-get --no-install-recommends install smartmontools
# az androidos telóm csatlakoztatásához:
apt-get --no-install-recommends install gvfs-backends
# levelező és naptár program:
apt-get --no-install-recommends install lightning-l10n-hu thunderbird-l10n-hu
# egyéb hasznos eszközök, amiket használni szoktam:
apt-get --no-install-recommends install dnsutils cpufrequtils gdebi net-tools unrar deborphan galculator geeqie vim-gtk aisleriot
# a szerzői jogok védelmére:
apt-get --no-install-recommends install audacious devede wodim libdvdcss2 id3v2
# az avahi-daemon-t nem szeretem, teleugatja a tűzfalamat:
systemctl stop avahi-daemon
systemctl disable avahi-daemon
apt-get purge avahi-daemon
# a firefox-ból mindig a legfrissebbet rakom fel kézzel:
apt-get purge firefox-esr
apt-get autoremove

Frissíthető csomagokról e-mail (root-ként)
Az apticron csinálja, be kell szépen konfigolni:
vi /etc/apticron/apticron.conf:
# ki kapja az e-mailt:
...
EMAIL="kovaax"
...

Mivel ez egy asztali gép, azt szeretném, hogy bekapcsoláskor nézze meg van-e frissítés, de 1 nap max egyszer. Ja, és felejtsük már el az rc.local-t, legyen inkább egy egyszer tüzelő systemd szolgáltatás.

# "active" kell legyenek:
systemctl status network-online.target
systemctl status exim4.service

vi /etc/systemd/system/apticron.service:
[Unit]
Description=Apticron Mail about pending package updates
Requires=network-online.target exim4.service
After=network-online.target exim4.service

[Service]
Type=oneshot
ExecStart=/usr/sbin/apticron --cron

[Install]
WantedBy=multi-user.target

# cronból kiveszem, de a biztonság kedvéért megtartom a bejegyzést:
mv /etc/cron.d/apticron /etc/apticron/
# elindítom az új szervízt:
systemctl daemon-reload
systemctl enable apticron.service
systemctl status apticron.service

REBOOT
Az újraindulás után ennek fájlnak frissülnie kell, ha minden jó lett:
ls -l /var/lib/apticron/cron_run

DNS cachelése és reklám oldalak szűrése (root-ként)
# DNSMasq:
vi /etc/NetworkManager/conf.d/dnsmasq.conf:

[main]
dns=dnsmasq

vi /etc/NetworkManager/dnsmasq.d/noreklam.conf:
# address-es sorokat belerakni
...
address=/adverticum.net/127.0.0.1
...

systemctl restart NetworkManager

Tesztelés:
dig ads.yahoo.com
../../../../lib/isc/unix/net.c:581: sendmsg() failed: Operation not permitted

; <<>> DiG 9.10.3-P4-Debian <<>> ads.yahoo.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64822
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ads.yahoo.com. IN A

;; ANSWER SECTION:
ads.yahoo.com. 0 IN A 127.0.0.1

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jun 24 19:05:17 CEST 2017
;; MSG SIZE rcvd: 47

Régebben lassabb volt a netem, így elsőre 3-5 msec volt a lekérdezés ideje, másodjára viszont a cache-lés miatt lecsökkent 0-ra. Most viszont már nem nyerek vele időt, csak kevesebb forgalmat generálok elméletileg, mivel ma már a böngészők is cache-lik az ip-ket, ha jól tudom...

SSD tuning
Alignálás ellenõrzése, 0 a jó:
blockdev --getalignoff /dev/sda
0

Van-e trim:
hdparm -I /dev/sda | grep TRIM
* Data Set Management TRIM supported (limit 8 blocks)

SATA mód ellenõrzése:
smartctl -a /dev/sda | grep SATA
SATA Version is: SATA 3.2, 6.0 Gb/s (current: 3.0 Gb/s)

noatime-t beállítani az ssd-n:
vi /etc/fstab:
...
# / was on /dev/sda1 during installation
UUID=c1e3b15c-54de-4fa2-bd58-3eab6046bf3b / ext4 noatime,errors=remount-ro 0 1
...

Mivel a /var és a /tmp nem az ssd-n van, elég hetente trimelni:
cp /usr/share/doc/util-linux/examples/fstrim.service /etc/systemd/system
cp /usr/share/doc/util-linux/examples/fstrim.timer /etc/systemd/system
systemctl enable fstrim.timer

Azt, hogy mikor futott utoljára az fstrim, a systemd timer-ek listázásával lehet megnézni:
systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Wed 2017-08-02 20:04:58 CEST 16min left Wed 2017-08-02 19:00:48 CEST 47min ago anacron.timer anacron.service
Thu 2017-08-03 06:27:07 CEST 10h left Wed 2017-08-02 18:35:47 CEST 1h 12min ago apt-daily-upgrade.timer apt-daily-upgrade.service
Thu 2017-08-03 08:53:22 CEST 13h left Wed 2017-08-02 18:35:47 CEST 1h 12min ago apt-daily.timer apt-daily.service
Thu 2017-08-03 18:50:48 CEST 23h left Wed 2017-08-02 18:50:48 CEST 57min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Mon 2017-08-07 00:00:00 CEST 4 days left Mon 2017-07-31 20:17:12 CEST 1 day 23h ago fstrim.timer fstrim.service

5 timers listed.
Pass --all to see loaded but inactive timers, too.

IO-scheduler beállítása:
vi /etc/udev/rules.d/60-ssd-scheduler.rules:
# set noop scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop"
# set deadline scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="deadline"

IO-scheduler tesztelése (újraindítás után, természetesen):
for f in /sys/block/sd?/queue/scheduler; do printf "$f -> "; cat $f; done
/sys/block/sda/queue/scheduler -> [noop] deadline cfq
/sys/block/sdb/queue/scheduler -> noop [deadline] cfq
/sys/block/sdc/queue/scheduler -> noop [deadline] cfq
for f in /sys/block/sd?/queue/rotational; do printf "$f -> "; cat $f; done
/sys/block/sda/queue/rotational -> 0
/sys/block/sdb/queue/rotational -> 1
/sys/block/sdc/queue/rotational -> 1

VirtualBox (root-ként)
echo deb http://download.virtualbox.org/virtualbox/debian stretch contrib > /etc/apt/sources.list.d/virtualbox.list
wget https://www.virtualbox.org/download/oracle_vbox_2016.asc
apt-key add oracle_vbox_2016.asc
apt-get update
apt-get install linux-headers-amd64 gcc make
apt-get install virtualbox-5.2

Firefox kézzel (root-ként)
Letölteni innen a legfrissebbet, érdemes az egész install előtt.

Felrakni /opt alá:
cd /opt
tar xjf /home/kovaax/downloads/linux/firefox-54.0.tar.bz2
ln -s /opt/firefox/firefox /usr/bin/firefox
update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/firefox 250

Firefox desktop file készítése:
vi /usr/share/applications/firefox-local.desktop:
[Desktop Entry]
Version=1.0
Name=Firefox Web Browser
Comment=Access the Internet
Exec=/opt/firefox/firefox %u
Terminal=false
Icon=/opt/firefox/browser/chrome/icons/default/default32.png
Type=Application
Categories=Network;WebBrowser;
MimeType=application/xhtml+xml;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;

Firefox konfigolása sima felhasználóként
Innen sima felhasználóként elindítjuk a firefox-ot vagy az alsó tálcáról, vagy a menüben az internet alól (ha több felhasználó van, mindenki magának állítgatja), majd beírjuk a címsorba: about:config

- scrollbar működése: ui.scrollToClick=0
- értesítések kikapcsolása: dom.webnotifications.enabled=false
- ne induljon el automatikusan a videó: media.autoplay.enabled=false
- cache memóriába:
browser.cache.disk.enable=false
browser.cache.memory.enable=true

jobb klikk, új egész: browser.cache.memory.capacity=1024000
- pipelining proxy nélkül:
jobb klikk, új logikai: network.http.keep-alive=true
network.http.version=1.1
network.http.pipelining=true
network.http.pipelining.maxrequests=4

- pipelining proxy-val:
jobb klikk, új logikai: network.http.proxy.keep-alive=true
network.http.proxy.version=1.1
network.http.proxy.pipelining=true
network.http.pipelining.maxrequests=4

Felrakni alá az uBlock Origin-t: https://addons.mozilla.org/en-us/firefox/addon/ublock-origin/

Script az Xfce levélfigyelőhöz (root-ként)
vi /usr/local/bin/melcsekk:
#!/bin/bash
if mailx -e; then xfce4-terminal -e /usr/bin/mailx; fi

chmod a+x /usr/local/bin/melcsekk
# hogy a root leveleit megkapja a sima júzer:
echo kovaax > ~/.forward

XFCE beállítások klikkolgatása sima felhasználóként
Synaptic:
Beállítások/Beállítások/Általános: Kezelje az ajánlott csomagokat függőségekként - pipa ki
Beállítások/Beállítások/Fájlok: Letöltött csomagok törlése telepítés után - pipa be
Apply - OK

Terminál:
Szerkesztés/Beállítások: Parancs futtatása bejelentkezési parancsértelmezőként - pipa be
így felveszi a .profile-ban lévő beállításokat is

Óra: jobbklikk/Tulajdonságok:
Elrendezés: Digitális
Buboréksúgó formátuma: Egyéni formátum, %c
Óra beállításai: Egyéni formátum, %H:%M:%S

Felső panel: jobbklikk/Panel/Új elemek hozzáadása:
Whisker Menü +
CPU-grafikon +
Időjárási adatok frissítése +
Levélfigyelő +
PulseAudio Plugin +

Alsó panel: jobbklikk/Panel/Panel beállításai:
A panel automatikus elrejtése: Mindig

GVim nyissa meg a sima text fájlokat:
Whisker menü->Beállítások->MIME-típus szerkesztő: text/plain -> GVim

Levélfigyelő: jobb klikk/Tulajdonságok/Hozzáadás/Helyi mbox tároló, kovaax, /var/mail/kovaax
Futtatás kattintásra: /usr/local/bin/melcsekk
Ez akkor is működik, ha még nem jelez e-mailt!

REBOOT

Rendszer log ellenőrzése, hogy minden rendben van-e (root-ként)
journalctl -b

Ha igen, akkor mindenki boldog! :R

Még van hozzászólás! Tovább