Byla vydána nová verze 9.19 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček BirdNET-Go, tj. AI řešení pro nepřetržité monitorování a identifikaci ptáků.
Byla vydána nová verze 3.38 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.10 souvisejícího programovacího jazyka Dart (Wikipedie).
Organizace Apache Software Foundation (ASF) vydala verzi 28 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Byl vydán Debian 13.2, tj. druhá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Google představil platformu Code Wiki pro rychlejší porozumění existujícímu kódu. Code Wiki pomocí AI Gemini udržuje průběžně aktualizovanou strukturovanou wiki pro softwarové repozitáře. Zatím jenom pro veřejné. V plánu je rozšíření Gemini CLI také pro soukromé a interní repozitáře.
V přihlašovací obrazovce LightDM KDE (lightdm-kde-greeter) byla nalezena a již opravena eskalace práv (CVE-2025-62876). Detaily v příspěvku na blogu SUSE Security.
Byla vydána nová verze 7.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 15.0.1. Další novinky v příslušném seznamu.
Česká národní banka (ČNB) nakoupila digitální aktiva založená na blockchainu za milion dolarů (20,9 milionu korun). Na vytvořeném testovacím portfoliu, jehož součástí jsou bitcoin, stablecoiny navázané na dolar a tokenizované depozitum, chce získat praktickou zkušenost s držením digitálních aktiv. Portfolio nebude součástí devizových rezerv, uvedla dnes ČNB v tiskové zprávě.
Apple představil iPhone Pocket pro stylové přenášení iPhonu. iPhone Pocket vzešel ze spolupráce značky ISSEY MIYAKE a Applu a jeho tělo tvoří jednolitý 3D úplet, který uschová všechny modely iPhonu. iPhone Pocket s krátkým popruhem se prodává za 149,95 dolarů (USA) a s dlouhým popruhem za 229,95 dolarů (USA).
Byla vydána nová stabilní verze 7.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 142. Přehled novinek i s náhledy v příspěvku na blogu.
#!/bin/bash
verbose=0
if [ -b /dev/sda ]; then
echo "Disk /dev/sda detected!"
set $disks
else
echo "Disk /dev/sda not detected!"
unset $disks
fi
if [ -b /dev/sdb ]; then
echo "Disk /dev/sdb detected!"
set $disks
else
echo "Disk /dev/sdb not detected!"
unset $disks
fi
if [ -z ${disks+x} ]; then
if [ -b /dev/md0 ]; then
echo "RAID md0 already exists"
else
if mdadm --assemble /dev/md0 /dev/sda /dev/sdb; then
echo "RAID /dev/md0 assembled!"
else
echo "Raid /dev/md0 failed to assemble!"
fi
fi
else
echo "Disks sda and sdb are not present!"
fi
Avšak, když jej spustím, tak je neskutečně ukecaný, viz níže:
root@turris01:~# mount-internal-crypto-drives bbb Disk /dev/sda detected! BASH=/bin/bash BASHOPTS=cmdhist:complete_fullquote:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=([0]="1") BASH_ARGV=([0]="bbb") BASH_CMDS=() BASH_LINENO=([0]="0") BASH_SOURCE=([0]="/usr/local/bin//mount-internal-crypto-drives") BASH_VERSINFO=([0]="4" [1]="4" [2]="11" [3]="1" [4]="release" [5]="arm-openwrt-linux-gnu") BASH_VERSION='4.4.11(1)-release' DIRSTACK=() EUID=0 GROUPS=() HOME=/root HOSTNAME=turris01.czko.perlur.cloud HOSTTYPE=arm IFS=$' \t\n' LOGNAME=root MACHTYPE=arm-openwrt-linux-gnu MAIL=/var/mail/root OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=/usr/bin:/usr/sbin:/bin:/sbin:/root/.acme.sh/:/usr/local/bin/ PIPESTATUS=([0]="0") PPID=14913 PS4='+ ' PWD=/root SHELL=/bin/ash SHELLOPTS=braceexpand:hashall:interactive-comments SHLVL=2 SSH_AUTH_SOCK=/tmp/ssh-NqAmXg83Kd/agent.14911 SSH_CLIENT='192.168.1.12 53651 22' SSH_CONNECTION='192.168.1.12 53651 82.209.54.74 22' SSH_TTY=/dev/pts/0 TERM=xterm-256color UID=0 USER=root _='Disk /dev/sda detected!' verbose=0 Disk /dev/sdb detected! BASH=/bin/bash BASHOPTS=cmdhist:complete_fullquote:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=([0]="1") BASH_ARGV=([0]="bbb") BASH_CMDS=() BASH_LINENO=([0]="0") BASH_SOURCE=([0]="/usr/local/bin//mount-internal-crypto-drives") BASH_VERSINFO=([0]="4" [1]="4" [2]="11" [3]="1" [4]="release" [5]="arm-openwrt-linux-gnu") BASH_VERSION='4.4.11(1)-release' DIRSTACK=() EUID=0 GROUPS=() HOME=/root HOSTNAME=turris01.czko.perlur.cloud HOSTTYPE=arm IFS=$' \t\n' LOGNAME=root MACHTYPE=arm-openwrt-linux-gnu MAIL=/var/mail/root OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=/usr/bin:/usr/sbin:/bin:/sbin:/root/.acme.sh/:/usr/local/bin/ PIPESTATUS=([0]="0") PPID=14913 PS4='+ ' PWD=/root SHELL=/bin/ash SHELLOPTS=braceexpand:hashall:interactive-comments SHLVL=2 SSH_AUTH_SOCK=/tmp/ssh-NqAmXg83Kd/agent.14911 SSH_CLIENT='192.168.1.12 53651 22' SSH_CONNECTION='192.168.1.12 53651 82.209.54.74 22' SSH_TTY=/dev/pts/0 TERM=xterm-256color UID=0 USER=root _='Disk /dev/sdb detected!' verbose=0 RAID md0 already exists root@turris01:~#Nevíte čím to může být způsobeno?
Řešení dotazu:
set bez parametrů (konkrétně set $disks, kde $disks je nedefinovaná proměnná). set bez parametrů vypíše všechny proměnné prostředí.
disks a když spustíte příkaz set bez parametrů, vypíše hodnoty všech proměnných. Ale abych pravdu řekl, nením mi moc jasné, o co se to tam s tou proměnnou vlastně snažíte (a co očekáváte, že by v ní mělo být).
sdb jsem ještě nekontroloval stav té proměnné, pokud by byla nenastavená tak by se test na sdb vůbec nespustil.
set a unset. První umožňuje nastavit poziční parametry shellu (se kterými ale skript nepracuje) a druhý sice odstraní proměnnou, ale jako argument musí dostat její jméno (ne hodnotu).
Takže jestli to chápu dobře, ta pasáž na začátku měla vypadat spíš nějak takhle
ALL_DISKS="/dev/sda /dev/sdb"
disks=""
for d in $ALL_DISKS; do
if [ -b "$d" ]; then
disks="$disks $d"
fi
done
Výsledkem by bylo, že v proměnné disks budou ta ze zařízení v ALL_DISKS, která skript v systému najde.
#!/bin/bash
declare -a disks=("/dev/sda" "/dev/sdb")
raid="/dev/md0"
for disk in ${disks[@]}; do
if [ ! -b "$disk" ]; then
echo "Disk $disk not detected!" >&2
exit 1
fi
done
if [ -b "$raid" ]; then
echo "RAID $raid already exists" >&2
exit 2
fi
mdadm --assemble "$raid" ${disks[@]}
if [ ! -b "$raid" ]; then
echo "Raid $raid failed to assemble!" >&2
exit 3
fi
Tiskni
Sdílej: