• Ubuntu bytte tillbaka till klassiska cp efter kompatibilitetsproblem

    Ubuntu har tillfälligt återgått till den klassiska GNU-versionen av kommandot cp efter att Rust-alternativet orsakat problem vid byggandet av systemets liveavbilder. Händelsen visar hur svårt det är att ersätta Linux mest grundläggande verktyg utan att stöta på små men avgörande kompatibilitetsskillnader.

    Ubuntu testar sedan en tid tillbaka att ersätta flera av Linux mest grundläggande kommandon med nya versioner skrivna i programmeringsspråket Rust. Men arbetet har nu stött på ännu ett kompatibilitetsproblem.

    Den här gången gäller det kommandot cp, som används för att kopiera filer och kataloger.

    Efter att Rust-versionen av cp orsakat problem vid byggandet av Ubuntus installations- och liveavbilder valde utvecklarna att tillfälligt gå tillbaka till den klassiska versionen från GNU Coreutils.

    Det betyder inte att Ubuntu har övergett satsningen på Rust. Händelsen visar snarare hur svårt det är att ersätta program som har utvecklats och använts i flera årtionden.

    Ett litet kommando med en viktig uppgift

    Kommandot cp verkar vid första anblicken mycket enkelt. Det kopierar en fil från en plats till en annan:

    Men bakom det enkla kommandot finns en stor mängd funktioner och specialfall. cp kan bland annat:

    • kopiera hela katalogstrukturer
    • bevara filrättigheter och tidsstämplar
    • hantera symboliska länkar
    • skriva över befintliga filer
    • skapa exakta kopior av katalogträd
    • hantera särskilda filtyper

    Under flera årtionden har administratörer, utvecklare och Linuxdistributioner skrivit skript som förutsätter att cp beter sig exakt på samma sätt i varje situation.

    Även en mycket liten skillnad kan därför få stora konsekvenser.

    Problem vid byggandet av Ubuntu

    Problemet upptäcktes när Ubuntu åter aktiverade Rust-versionen av cp i paketet coreutils-from.

    Det paketet används för att bestämma om ett visst kommando ska komma från traditionella GNU Coreutils eller från det Rustbaserade projektet uutils.

    När Rust-versionen av cp aktiverades började paketet livecd-rootfs misslyckas. Det är ett viktigt verktyg som används när Ubuntu bygger sina startbara live- och installationsavbilder.

    Eftersom felet stoppade byggandet av Ubuntuavbilder klassades det som kritiskt.

    Den omedelbara lösningen blev därför att återställa GNU-versionen av cp.

    Problemet uppstod med flera flaggor samtidigt

    Felet handlade om hur Rust-versionen tolkade vissa kombinationer av kommandoradsflaggor.

    Ett exempel är:

    Flaggan -a betyder arkivläge. Den används när man vill kopiera en katalog så fullständigt som möjligt och samtidigt bevara exempelvis filrättigheter, ägare, tidsstämplar och länkar.

    I GNU-versionen motsvarar -a ungefär följande:

    Det viktiga här är bokstaven R, som betyder att kataloger ska kopieras rekursivt.

    Flaggan -L säger samtidigt att symboliska länkar ska följas. I stället för att bara kopiera själva länken kopieras alltså det som länken pekar på.

    Rust-versionen hanterade vissa sådana flaggkombinationer för aggressivt. När -a och -L användes tillsammans kunde den rekursiva funktionen som ingår i -a försvinna.

    Resultatet blev felmeddelanden som:

    Programmet hävdade alltså att rekursiv kopiering inte hade begärts, trots att den egentligen ingick i arkivläget.

    Varför är det så svårt att ersätta gamla Unixverktyg?

    GNU Coreutils innehåller flera av de mest grundläggande kommandona i Linux, bland annat:

    Kommandona har funnits länge och används överallt: i installationsprogram, säkerhetskopior, servermiljöer, byggsystem och vanliga skalskript.

    Dokumentationen beskriver hur kommandona ska fungera, men i praktiken finns det även en mängd historiska beteenden och specialfall som program och skript har börjat förlita sig på.

    En ny implementation måste därför inte bara göra ungefär samma sak. Den måste ofta efterlikna originalet nästan exakt.

    Det gäller bland annat:

    • vilka flaggor som får kombineras
    • vilken flagga som har företräde
    • i vilken ordning argument behandlas
    • vilka felmeddelanden som visas
    • vilka returvärden programmet ger
    • hur länkar, kataloger och filrättigheter hanteras

    Det är ofta först när den nya versionen används i en stor Linuxdistribution som de ovanliga skillnaderna upptäcks.

    Rust är inte problemet i sig

    Det inträffade ska inte tolkas som att Rust Coreutils är ett misslyckat projekt eller att programmeringsspråket Rust inte lämpar sig för systemverktyg.

    Tvärtom är det just genom omfattande tester som sådana problem kan upptäckas och rättas innan verktygen når en stabil Ubuntuutgåva.

    Rust har blivit populärt inom systemutveckling eftersom språket är konstruerat för att förhindra flera vanliga typer av programmeringsfel.

    Program skrivna i C eller C++ kan exempelvis drabbas av:

    • buffertöverskridningar
    • användning av redan frigjort minne
    • ogiltiga minnespekare
    • datakapplöpningar mellan trådar

    Rusts typsystem och regler för minneshantering gör många av dessa fel svårare eller omöjliga att skapa i säker Rustkod.

    För program som finns på miljontals datorer kan det innebära betydande säkerhetsfördelar.

    Ubuntu vill införa Rust stegvis

    Canonical har tidigare meddelat att målet är att börja använda vissa moderna Rustbaserade systemverktyg som standard.

    Planen har varit att introducera fler sådana verktyg i Ubuntu 25.10 och därefter eventuellt använda dem i Ubuntu 26.04 LTS, förutsatt att kompatibiliteten är tillräckligt bra.

    Ett viktigt projekt i satsningen är uutils Coreutils, som försöker återskapa GNU Coreutils i Rust.

    Det handlar alltså inte om att skapa helt nya kommandon. Målet är att användare och skript ska kunna fortsätta skriva exempelvis:

    Skillnaden är att programmen bakom kommandona är skrivna i Rust i stället för huvudsakligen C.

    Ett verktyg för att växla mellan gammalt och nytt

    För att göra övergången säkrare har Ubuntu utvecklat ett verktyg för experimentell aktivering av Rustbaserade systemkomponenter.

    Tanken är att användaren eller utvecklaren enkelt ska kunna växla mellan olika implementationer.

    Ett experiment kan exempelvis aktivera:

    • Rust Coreutils
    • sudo-rs
    • andra framtida Rustbaserade systemverktyg

    Om ett kompatibilitetsproblem uppstår ska experimentet kunna stängas av, så att systemet återgår till de traditionella programmen.

    Detta gör det möjligt att testa ny teknik utan att omedelbart göra den permanent för alla användare.

    Ingen fara för vanliga Ubuntu-användare

    För vanliga användare finns det ingen anledning till oro.

    Ubuntu har inte levererat ett trasigt cp i en färdig stabil utgåva. Problemet upptäcktes under utveckling och verktyget byttes tillbaka innan det hann bli ett större problem.

    Att återgå till GNU-versionen är ett försiktigt och rimligt beslut. Grundläggande filkommandon måste fungera stabilt, eftersom ett fel kan påverka allt från installationer och säkerhetskopior till systemuppdateringar.

    Samtidigt har utvecklarna skickat en korrigering uppströms, så att problemet kan lösas i själva uutils-projektet.

    En påminnelse om hur mycket vi tar för givet

    De flesta tänker sällan på kommandon som cp, ls eller mv. De finns bara där och förväntas alltid fungera.

    Men just därför är de svåra att ersätta.

    Ett modernt program kan vara bättre konstruerat, säkrare och lättare att underhålla, men det måste samtidigt vara kompatibelt med flera årtionden av skript och användarbeteenden.

    Händelsen med Ubuntu och cp visar att övergången till Rust inte kommer att ske genom ett enda stort byte. Den kommer snarare att ske steg för steg, med tester, bakslag, rättningar och tillfälliga återgångar.

    Det är inte ett tecken på att utvecklingen har misslyckats.

    Det är så försiktig systemutveckling bör fungera.

    https://bugs.launchpad.net/ubuntu/+source/coreutils-from/+bug/2158691

    $ FAKTA: UBUNTU, CP OCH RUST COREUTILS

    > Berört kommando:
    cp – används för att kopiera filer och kataloger.

    > Traditionell version:
    GNU Coreutils, huvudsakligen skrivet i programmeringsspråket C.

    > Ny version:
    uutils Coreutils, en nyimplementation av de klassiska Unix-verktygen i Rust.

    > Vad hände?
    Rust-versionen av cp hanterade vissa kombinationer av flaggorna -a och -L annorlunda än GNU-versionen.

    > Konsekvens:
    Paketet livecd-rootfs kunde inte bygga Ubuntus live- och installationsavbilder korrekt.

    > Ubuntus lösning:
    Ubuntu återgick tillfälligt till GNU-versionen av cp medan felet rättas i uutils.

    > Berörda Ubuntu-versioner:
    Utvecklingen inför Ubuntu 26.04 LTS samt den pågående övergången till Rust-baserade systemverktyg.

    > För vanliga användare:
    Ingen akut åtgärd krävs. Problemet upptäcktes under utvecklingen och nådde inte en färdig stabil Ubuntu-utgåva.

  • Ubuntu 25.10 “Questing Quokka”

    Ubuntu 25.10 “Questing Quokka” är en snabb och modern uppdatering som gör datorn lättare att starta, smidigare att använda och säkrare från grunden. Den satsar på ett renare skrivbord (Wayland), snabbare verktyg och enklare uppdateringar – perfekt för dig som vill ha det senaste utan att vänta på nästa långtidsversion. Supporten varar i nio månader, till juli 2026.

    Ubuntu 25.10 är en korttidsversion (stöd i 9 månader, till juli 2026). Den passar dig som vill ha det senaste utan att vänta på nästa långtidsversion.

    Snabbare start och stabilare grund

    • Ny Linux-kärna 6.17
      Kärnan är operativsystemets motor. Den här versionen ger bättre stöd för ny hårdvara, bland annat:
    • Intel TDX (Trusted Domain Extensions – teknik för säkrare virtuella datorer)
    • ARM64 (en modern processor­arkitektur som sitter i många energieffektiva datorer)
    • RISC-V (öppen processor­arkitektur som blir allt vanligare)
    • Förbättringar för Intel Arc “Battlemage” (nya grafikkort från Intel).
    • Dracut ersätter initramfs-tools
      Initramfs är den lilla ”ministart” som körs innan systemet startar på riktigt. Dracut är ett modernare sätt att bygga den. Resultat: enklare, snabbare och mer robust uppstart. (På server behålls det gamla läget tills allt är färdigportat.)
    • systemd 257.9
      systemd är delen som startar och övervakar tjänster i systemet. Uppdateringen ger smidigare hantering av start/avstängning och loggar.

    Vardagskommandon och programhantering

    • Rust Coreutils som standard
      Coreutils är basverktygen som cp, mv, ls osv. De finns nu i en variant skriven i Rust (ett säkrare, snabbare programmeringsspråk). De gamla GNU Coreutils finns kvar om något skript kräver dem.
    • APT 3.1
      APT är Ubuntus verktyg för att installera och uppdatera program. Ny version med smartare problemlösning och nya kommandon:
    • apt why visar varför något installerats.
    • apt why-not visar varför inte något kan installeras.
    • sudo-rs
      sudo låter dig köra administrativa kommandon. sudo-rs är en ny, säker variant skriven i Rust. Den klassiska sudo finns också kvar om du vill använda den.

    Skrivbordet: modern grafik och enklare appar

    • Bara Wayland, farväl X.org
      Wayland är den moderna grafikgrunden som ersätter X.org (äldre system). Det ger bättre säkerhet och ofta bättre flyt. NVIDIA-användare (NVIDIA är ett vanligt grafikkortsmärke) får fungerande viloläge/uppvakning med den proprietära drivrutinen.
    • GNOME 49
      GNOME är själva skrivbordsmiljön (utseende, menyer, inställningar). Nytt:
    • Bättre skalanpassning (mindre suddig text på skärmar med hög upplösning).
    • Du kan låta appar starta automatiskt efter inloggning.
    • Finjusterad standardskrift för terminaler.
    • Nya standardappar
    • Loupe ersätter gamla bildvisaren. Snabbt, enkelt.
    • Ptyxis ersätter GNOME Terminal – modern terminal som funkar fint med Wayland.
    • Säkerhetscenter
      Enklare hantering av TPM-kryptering: TPM (Trusted Platform Module) är ett litet säkerhetschip som kan skydda din disk med nycklar som lagras säkert. Du kan t.ex. återställa nycklar smidigare.
    • Ubuntu Insights
      Nytt sätt att frivilligt dela icke-personliga användningsdata för att förbättra Ubuntu – med tydligare kontroll över vad som delas.

    För utvecklare

    Uppdaterade verktyg rakt igenom: GCC 15.2 (C/C++-kompilator), Python 3.13, LLVM 20, Rust 1.85, Go 1.24. OpenJDK 21 (Java) är standard, OpenJDK 25 finns tillgänglig. Zig 0.14.1 finns i Ubuntu för första gången.
    Kort sagt: nyare språk, bättre prestanda, färre byggproblem.

    För servrar

    • Chrony ersätter systemd-timesyncd
      NTP (Network Time Protocol) håller serverns klocka rätt. Chrony är en mer exakt och robust NTP-tjänst. Den använder NTS (Network Time Security) för krypterad och säker tids­hämtning.
    • Containerverktyg uppdaterade
    • containerd 2.1.3, runC 1.3.0, docker.io 28.2
      (containerd och runC är motorn under huven för Docker, som kör program i lätta ”lådor” som är enkla att flytta.)
    • Vanliga serversaker
      Nyare versioner av Apache, Nginx, PHP, PostgreSQL, MySQL, OpenSSH, Samba med fokus på säkerhet, fart och stabilitet.

    Raspberry Pi och andra plattformar

    • Pi-bilderna (Raspberry Pi-utgåvorna) är nu mer slimmade från start – färre förinstallerade appar för att spara plats. Du kan såklart lägga till det du behöver.

    Kända skavanker (i korthet)

    • Offline-installation + NVIDIA kan ge fel drivrutin (Nouveau). Lösning: installera med internet eller byt drivrutin efteråt.
    • Virtuella maskiner (VirtualBox/VMware) kan visa vissa appar konstigt med 3D-acceleration på.
    • OpenStack Nova har en känd kompatibilitetsfråga med Python 3.13 som fixas via uppdatering.

    Uppgradera? Välj stöd som passar dig

    • Uppgraderingar till 25.10 öppnas senast 16 oktober.
    • Behöver du långtidsstöd? Kör Ubuntu 24.04 LTS (Long Term Support) – support till minst 2029.
    • 25.10 finns för desktop, server och moln, plus smaker som Kubuntu, Xubuntu, Ubuntu MATE, Budgie, Cinnamon, Kylin, Unity m.fl.

    Summa summarum

    Ubuntu 25.10 gör datorn snabbare att starta, skrivbordet modernare och säkrare (Wayland), och ger färskare verktyg för både vanliga användare och utvecklare. Vill du ha det senaste utan att vänta på nästa långtidsversion – då är “Questing Quokka” ett trevligt val.

    Kan laddas ner här :

    https://wiki.linux.se/index.php/Ubuntu#Version_25.10_(Supportas_med_updatering_fram_till_Juli_2026)

    Ubuntu 25.10 “Questing Quokka” — Fakta & tekniskt godis

    • Släpp: 25.10 (korttidsversion)
    • Support: 9 månader (till juli 2026)
    • Uppgradering: öppnas senast 16 oktober

    Kärna & uppstart

    • Linux 6.17 — tidigt stöd för Intel TDX (säker virtualisering), förbättrad ARM64, bättre RISC-V, uppdaterade drivrutiner för Intel Arc “Battlemage”.
    • Dracut ersätter initramfs-tools (desktop) för enklare & snabbare initramdisk; stöd i tidig userspace för Bluetooth & NVMe-oF.
    • systemd 257.9 — moderniserad tjänstehantering och logik för start/avstängning.

    Basverktyg & pakethantering

    • Rust Coreutils som standard (GNU Coreutils finns kvar för kompatibilitet).
    • sudo-rs (Rust) som standard; klassisk sudo finns kvar.
    • APT 3.1 — ny smart beroendelösare; kommandon apt why & apt why-not; nya Include/Exclude i repo-konfig.

    Skrivbord

    • Wayland only — X.org-sesionen borttagen; förbättrad suspend/resume med NVIDIA-drivrutin.
    • GNOME 49 — förbättrad fraktionell skalning, autostart per app, finjusterad monospace-storlek.
    • Nya apparLoupe (bildvisare) & Ptyxis (terminal) ersätter EOG & GNOME Terminal.

    Säkerhet & insyn

    • TPM-backad diskkryptering (hantering i Security Center: nyckel­återställning m.m.).
    • Ubuntu Insights ersätter Ubuntu Report — opt-in telemetri med tydligare kontroll.

    Utvecklar­stack

    • GCC 15.2, Python 3.13, LLVM 20, Rust 1.85, Go 1.24.
    • OpenJDK 21 standard (25 tillgänglig); Zig 0.14.1 debut i Ubuntu.

    Server & moln

    • Chrony 4.7 ersätter systemd-timesyncd — NTP med NTS (krypterad tid).
    • Container­körning — containerd 2.1.3, runC 1.3.0, docker.io 28.2.
    • cloud-init 25.3 — förbättringar för Azure/EC2 m.fl.
    • Vanliga tjänster — Apache 2.4.64, Nginx 1.28, PHP 8.4.11, PostgreSQL 17.6, MySQL 8.4, OpenSSH 10.0, Samba 4.22, strongSwan 6.0.1.

    Plattformar

    • Raspberry Pi — desktop-images baseras på “desktop-minimal” (kraftigt mindre förinstallerat); ny robust boot-layout.
    • RISC-V — kräver hårdvara med RVA23S64-profil.

    Kända saker att känna till

    • Offline-installation med NVIDIA kan lägga in Nouveau — byt till proprietär drivrutin efteråt eller installera online.
    • GTK4-appar kan se fel ut i vissa VM:er med 3D-acceleration.
    • Enstaka AppArmor/cloud-init-frågor; OpenStack Nova fixas via uppdatering.

    Smaker & tillgänglighet

    • Finns för desktop, server & cloud samt smaker: Kubuntu, Xubuntu, Ubuntu MATE, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu Unity m.fl.

Etikett: Rust Coreutils

  • Ubuntu bytte tillbaka till klassiska cp efter kompatibilitetsproblem

    Ubuntu har tillfälligt återgått till den klassiska GNU-versionen av kommandot cp efter att Rust-alternativet orsakat problem vid byggandet av systemets liveavbilder. Händelsen visar hur svårt det är att ersätta Linux mest grundläggande verktyg utan att stöta på små men avgörande kompatibilitetsskillnader. Ubuntu testar sedan en tid tillbaka att ersätta flera av Linux mest grundläggande kommandon…

  • Ubuntu 25.10 “Questing Quokka”

    Ubuntu 25.10 “Questing Quokka” är en snabb och modern uppdatering som gör datorn lättare att starta, smidigare att använda och säkrare från grunden. Den satsar på ett renare skrivbord (Wayland), snabbare verktyg och enklare uppdateringar – perfekt för dig som vill ha det senaste utan att vänta på nästa långtidsversion. Supporten varar i nio månader,…