[{"data":1,"prerenderedAt":812},["ShallowReactive",2],{"doc-\u002Fdocs\u002Flinux":3,"docs-nav":784},{"id":4,"title":5,"body":6,"description":774,"extension":775,"meta":776,"navigation":283,"order":777,"path":778,"platform":779,"seo":780,"status":781,"stem":782,"__hash__":783},"docs\u002Fdocs\u002Flinux.md","Olympiads on Linux",{"type":7,"value":8,"toc":759},"minimark",[9,13,22,27,67,239,249,253,258,261,344,358,362,377,387,391,397,406,409,416,431,434,437,446,454,458,465,468,474,489,493,496,557,560,564,571,661,670,683,687,703,707,755],[10,11,5],"h1",{"id":12},"olympiads-on-linux",[14,15,16,17,21],"p",{},"Linux packages are built, but not offered to students yet: the part of the app that lists cameras and screens on Linux is not finished, so an exam cannot be started there. This page describes what will ship, so you can see whether your machine is covered. The install commands below ",[18,19,20],"strong",{},"will work once the packages are published","; until then the addresses answer nothing.",[23,24,26],"h2",{"id":25},"requirements","Requirements",[28,29,30,38,53,60],"ul",{},[31,32,33,34,37],"li",{},"A ",[18,35,36],{},"64-bit Intel or AMD"," machine (x86_64). There is no ARM build.",[31,39,40,43,44,47,48,52],{},[18,41,42],{},"glibc 2.35 or newer"," and ",[18,45,46],{},"WebKitGTK 4.1"," (libsoup 3). To see your glibc: ",[49,50,51],"code",{},"ldd --version | head -1",".",[31,54,55,56,59],{},"An ",[18,57,58],{},"X11"," session for exams that record the screen — see the Wayland note below.",[31,61,62,63,66],{},"A camera. The app reads it directly (",[49,64,65],{},"\u002Fdev\u002Fvideo*","); no separate driver is needed for a normal USB or built-in webcam.",[68,69,70,86],"table",{},[71,72,73],"thead",{},[74,75,76,80,83],"tr",{},[77,78,79],"th",{},"Distribution",[77,81,82],{},"Works?",[77,84,85],{},"Use",[87,88,89,104,115,126,139,158,171,188,198,209,222],"tbody",{},[74,90,91,95,98],{},[92,93,94],"td",{},"Ubuntu 22.04, 24.04 and later",[92,96,97],{},"yes",[92,99,100,101],{},"apt repository or the ",[49,102,103],{},".deb",[74,105,106,109,111],{},[92,107,108],{},"Debian 12, 13",[92,110,97],{},[92,112,100,113],{},[49,114,103],{},[74,116,117,120,122],{},[92,118,119],{},"Linux Mint 21\u002F22, Pop!_OS, Zorin",[92,121,97],{},[92,123,100,124],{},[49,125,103],{},[74,127,128,131,133],{},[92,129,130],{},"Fedora 43 and later",[92,132,97],{},[92,134,135,136],{},"dnf repository or the ",[49,137,138],{},".rpm",[74,140,141,147,154],{},[92,142,143,144],{},"RHEL, Rocky, Alma, CentOS Stream ",[18,145,146],{},"10",[92,148,149,150,153],{},"yes, where ",[49,151,152],{},"webkit2gtk4.1"," is available",[92,155,135,156],{},[49,157,138],{},[74,159,160,163,165],{},[92,161,162],{},"Arch, Manjaro, EndeavourOS",[92,164,97],{},[92,166,167,168],{},"AUR package ",[49,169,170],{},"olympiads-bin",[74,172,173,176,178],{},[92,174,175],{},"openSUSE Leap 15.6, Tumbleweed",[92,177,97],{},[92,179,180,181,183,184,187],{},"AppImage (the ",[49,182,138],{}," names Fedora packages, so ",[49,185,186],{},"zypper"," refuses it)",[74,189,190,193,195],{},[92,191,192],{},"Anything else with glibc 2.35 or newer",[92,194,97],{},[92,196,197],{},"AppImage",[74,199,200,203,206],{},[92,201,202],{},"Anything with Flatpak",[92,204,205],{},"yes, once the listing is up",[92,207,208],{},"Flatpak",[74,210,211,214,219],{},[92,212,213],{},"Ubuntu 20.04, Debian 11",[92,215,216],{},[18,217,218],{},"no",[92,220,221],{},"glibc is too old and there is no WebKitGTK 4.1 package",[74,223,224,229,233],{},[92,225,143,226],{},[18,227,228],{},"9",[92,230,231],{},[18,232,218],{},[92,234,235,236,238],{},"glibc 2.34 and WebKitGTK 4.0 only; neither the ",[49,237,138],{}," nor the AppImage starts. The Flatpak is the one build that could run there, because it brings its own runtime, but nothing is published for it yet",[14,240,241,242,244,245,248],{},"The AppImage bundles WebKitGTK, which is why it is much larger than the ",[49,243,103],{},", but it does ",[18,246,247],{},"not"," bundle glibc. It needs the same 2.35 floor as everything else.",[23,250,252],{"id":251},"install","Install",[254,255,257],"h3",{"id":256},"ubuntu-debian-mint-pop_os-zorin-apt","Ubuntu, Debian, Mint, Pop!_OS, Zorin (apt)",[14,259,260],{},"Fetch the repository key into a keyring, write the source file, then install:",[262,263,268],"pre",{"className":264,"code":265,"language":266,"meta":267,"style":267},"language-sh shiki shiki-themes github-light github-dark","curl -fsSL https:\u002F\u002Fhub.main-team.org\u002Fkeys\u002Folympiads-linux.asc | sudo gpg --dearmor -o \u002Fusr\u002Fshare\u002Fkeyrings\u002Folympiads.gpg\n\nsudo tee \u002Fetc\u002Fapt\u002Fsources.list.d\u002Folympiads.sources > \u002Fdev\u002Fnull \u003C\u003C'EOF'\nTypes: deb\nURIs: https:\u002F\u002Fhub.main-team.org\u002Fapt\nSuites: stable\nComponents: main\nSigned-By: \u002Fusr\u002Fshare\u002Fkeyrings\u002Folympiads.gpg\nEOF\n\nsudo apt update\nsudo apt install olympiads\n","sh","",[49,269,270,278,285,291,297,303,309,315,321,327,332,338],{"__ignoreMap":267},[271,272,275],"span",{"class":273,"line":274},"line",1,[271,276,277],{},"curl -fsSL https:\u002F\u002Fhub.main-team.org\u002Fkeys\u002Folympiads-linux.asc | sudo gpg --dearmor -o \u002Fusr\u002Fshare\u002Fkeyrings\u002Folympiads.gpg\n",[271,279,281],{"class":273,"line":280},2,[271,282,284],{"emptyLinePlaceholder":283},true,"\n",[271,286,288],{"class":273,"line":287},3,[271,289,290],{},"sudo tee \u002Fetc\u002Fapt\u002Fsources.list.d\u002Folympiads.sources > \u002Fdev\u002Fnull \u003C\u003C'EOF'\n",[271,292,294],{"class":273,"line":293},4,[271,295,296],{},"Types: deb\n",[271,298,300],{"class":273,"line":299},5,[271,301,302],{},"URIs: https:\u002F\u002Fhub.main-team.org\u002Fapt\n",[271,304,306],{"class":273,"line":305},6,[271,307,308],{},"Suites: stable\n",[271,310,312],{"class":273,"line":311},7,[271,313,314],{},"Components: main\n",[271,316,318],{"class":273,"line":317},8,[271,319,320],{},"Signed-By: \u002Fusr\u002Fshare\u002Fkeyrings\u002Folympiads.gpg\n",[271,322,324],{"class":273,"line":323},9,[271,325,326],{},"EOF\n",[271,328,330],{"class":273,"line":329},10,[271,331,284],{"emptyLinePlaceholder":283},[271,333,335],{"class":273,"line":334},11,[271,336,337],{},"sudo apt update\n",[271,339,341],{"class":273,"line":340},12,[271,342,343],{},"sudo apt install olympiads\n",[14,345,346,347,350,351,353,354,357],{},"The repository is signed; ",[49,348,349],{},"Signed-By"," limits that key to this one source. If you would rather not add a repository, the ",[49,352,103],{}," from the download page installs with ",[49,355,356],{},"sudo apt install .\u002FOlympiads_\u003Cversion>_amd64.deb"," and updates through the app instead.",[254,359,361],{"id":360},"fedora-enterprise-linux-10-dnf","Fedora, Enterprise Linux 10 (dnf)",[262,363,365],{"className":264,"code":364,"language":266,"meta":267,"style":267},"sudo curl -o \u002Fetc\u002Fyum.repos.d\u002Folympiads.repo https:\u002F\u002Fhub.main-team.org\u002Frpm\u002Folympiads.repo\nsudo dnf install olympiads\n",[49,366,367,372],{"__ignoreMap":267},[271,368,369],{"class":273,"line":274},[271,370,371],{},"sudo curl -o \u002Fetc\u002Fyum.repos.d\u002Folympiads.repo https:\u002F\u002Fhub.main-team.org\u002Frpm\u002Folympiads.repo\n",[271,373,374],{"class":273,"line":280},[271,375,376],{},"sudo dnf install olympiads\n",[14,378,379,380,43,383,386],{},"The repo file turns on ",[49,381,382],{},"gpgcheck=1",[49,384,385],{},"repo_gpgcheck=1",", so both the packages and the repository metadata are verified against the same key. dnf asks you to accept the key the first time.",[254,388,390],{"id":389},"arch-manjaro-endeavouros-aur","Arch, Manjaro, EndeavourOS (AUR)",[14,392,393,394,396],{},"The package is ",[49,395,170],{},". With an AUR helper:",[262,398,400],{"className":264,"code":399,"language":266,"meta":267,"style":267},"yay -S olympiads-bin\n",[49,401,402],{"__ignoreMap":267},[271,403,404],{"class":273,"line":274},[271,405,399],{},[254,407,197],{"id":408},"appimage",[14,410,411,412,415],{},"Download ",[49,413,414],{},"Olympiads_\u003Cversion>_amd64.AppImage",", make it executable and run it:",[262,417,419],{"className":264,"code":418,"language":266,"meta":267,"style":267},"chmod +x Olympiads_\u003Cversion>_amd64.AppImage\n.\u002FOlympiads_\u003Cversion>_amd64.AppImage\n",[49,420,421,426],{"__ignoreMap":267},[271,422,423],{"class":273,"line":274},[271,424,425],{},"chmod +x Olympiads_\u003Cversion>_amd64.AppImage\n",[271,427,428],{"class":273,"line":280},[271,429,430],{},".\u002FOlympiads_\u003Cversion>_amd64.AppImage\n",[14,432,433],{},"Keep it somewhere you can write to, such as your home folder. When the app updates itself it writes the new file to a temporary location on the same drive and swaps it into place; on a read-only or removable drive that fails.",[254,435,208],{"id":436},"flatpak",[262,438,440],{"className":264,"code":439,"language":266,"meta":267,"style":267},"flatpak install flathub \u003Capp id>\n",[49,441,442],{"__ignoreMap":267},[271,443,444],{"class":273,"line":274},[271,445,439],{},[14,447,448,449,453],{},"The application id is still being decided; the Flathub listing follows. The app tells you it is a Flatpak in ",[450,451,452],"em",{},"About"," and, when an update exists, says so there rather than installing it.",[23,455,457],{"id":456},"the-wayland-note","The Wayland note",[14,459,460,461,464],{},"Screen recording is part of every supervised exam. On a ",[18,462,463],{},"Wayland"," session — the default on current Ubuntu and Fedora desktops — the app cannot record the screen yet. The camera is not affected.",[14,466,467],{},"The app says so itself, on its first screen and again at the readiness check:",[469,470,471],"blockquote",{},[14,472,473],{},"This computer is running a Wayland desktop, and this exam records your screen. Log out and choose an Xorg (X11) session from the login screen, then open Olympiads again.",[14,475,476,477,480,481,484,485,488],{},"Only the exam is affected. You can still sign in, add exams and read results on Wayland. To see which session you are on: ",[49,478,479],{},"echo $XDG_SESSION_TYPE"," prints ",[49,482,483],{},"wayland"," or ",[49,486,487],{},"x11",". A KDE Plasma, Xfce or MATE session started under X11 works.",[23,490,492],{"id":491},"what-the-app-asks-for","What the app asks for",[14,494,495],{},"The first screen lists what an exam needs. On Linux none of it is a permission dialog:",[68,497,498,508],{},[71,499,500],{},[74,501,502,505],{},[77,503,504],{},"Card",[77,506,507],{},"What it says",[87,509,510,520,533,545],{},[74,511,512,517],{},[92,513,514],{},[18,515,516],{},"Camera",[92,518,519],{},"Reports the camera it found. A missing camera does not block sign-in — it blocks starting an exam, at the readiness check.",[74,521,522,527],{},[92,523,524],{},[18,525,526],{},"Screen Recording",[92,528,529,532],{},[450,530,531],{},"Linux does not ask before the screen is recorded. What can still go wrong shows up at the readiness check before the exam, as a source with no video."," On Wayland it shows the sentence above instead.",[74,534,535,540],{},[92,536,537],{},[18,538,539],{},"Notifications",[92,541,542],{},[450,543,544],{},"Optional. Your desktop decides how these are shown; there is nothing to allow.",[74,546,547,552],{},[92,548,549],{},[18,550,551],{},"During the exam",[92,553,554],{},[450,555,556],{},"When your exam starts, Olympiads fills the screen, stays in front of every other window and cannot be closed or minimised until you hand in. Your desktop's own window switching still works. If you need help during the exam, the Help button releases the window so you can reach your mail; your exam is held where you left it until you come back.",[14,558,559],{},"The app keeps your sign-in in the system keyring (Secret Service). Without one — GNOME Keyring, KWallet or KeePassXC — it still works, but you sign in again after every restart.",[23,561,563],{"id":562},"updates","Updates",[14,565,566,567,570],{},"The app checks for a new version shortly after it opens and about every six hours after that, downloads it in the background and shows ",[450,568,569],{},"Update ready — install and reopen",". What happens when you press it depends on how you installed:",[68,572,573,586],{},[71,574,575],{},[74,576,577,580,583],{},[77,578,579],{},"Installed as",[77,581,582],{},"Self-update",[77,584,585],{},"What the app says",[87,587,588,602,613,625,643],{},[74,589,590,595,597],{},[92,591,592,594],{},[49,593,103],{}," from the repository or the file",[92,596,97],{},[92,598,599],{},[450,600,601],{},"Your computer will ask for your password, because this package is installed for everyone who uses it.",[74,603,604,608,610],{},[92,605,606,594],{},[49,607,138],{},[92,609,97],{},[92,611,612],{},"the same",[74,614,615,617,619],{},[92,616,197],{},[92,618,97],{},[92,620,621,624],{},[450,622,623],{},"Olympiads will replace its own AppImage file and reopen."," No password.",[74,626,627,629,633],{},[92,628,208],{},[92,630,631],{},[18,632,218],{},[92,634,635,638,639,642],{},[450,636,637],{},"This copy of Olympiads was installed with Flatpak, which updates it for you."," Run ",[49,640,641],{},"flatpak update",", or use your software centre.",[74,644,645,648,652],{},[92,646,647],{},"AUR",[92,649,650],{},[18,651,218],{},[92,653,654,657,658,52],{},[450,655,656],{},"This copy of Olympiads was installed by your package manager, which owns its files. Update it the same way you installed it."," — ",[49,659,660],{},"yay -Syu",[14,662,663,664,666,667,52],{},"The app never updates while an exam window is open or a recording is still being sent. ",[450,665,452],{}," shows which kind of install you have and offers ",[450,668,669],{},"Check now",[671,672,675],"div",{"className":673},[674],"callout",[14,676,677,678,43,680,682],{},"On a shared or school machine the ",[49,679,103],{},[49,681,138],{}," need an administrator's password to update. If you do not have one, the AppImage in your home folder updates without it.",[23,684,686],{"id":685},"uninstall","Uninstall",[14,688,689,692,693,692,696,692,699,702],{},[49,690,691],{},"sudo apt remove olympiads",", ",[49,694,695],{},"sudo dnf remove olympiads",[49,697,698],{},"yay -R olympiads-bin",[49,700,701],{},"flatpak uninstall \u003Capp id>",", or delete the AppImage. Exam recordings still being sent live in the app's own data directory under your home; the app tells you if something is still waiting before you quit.",[23,704,706],{"id":705},"trouble","Trouble?",[28,708,709,721,732,738,749],{},[31,710,711,720],{},[18,712,713,714,717,718,52],{},"apt or dnf cannot find ",[49,715,716],{},"libwebkit2gtk-4.1-0"," \u002F ",[49,719,152],{}," Your release is below the floor (Ubuntu 20.04, Debian 11, Enterprise Linux 9). Upgrade the system or sit the exam on another device.",[31,722,723,731],{},[18,724,725,727,728,730],{},[49,726,186],{}," refuses the ",[49,729,138],{}," on openSUSE."," The package names its dependencies the Fedora way. Use the AppImage.",[31,733,734,737],{},[18,735,736],{},"The Screen Recording card says \"This computer is running a Wayland desktop…\"."," Log out and pick an Xorg or X11 session on the login screen, then open the app again. The camera card is unaffected.",[31,739,740,743,744,484,746,748],{},[18,741,742],{},"The update asks for a password you do not have."," You have the ",[49,745,103],{},[49,747,138],{},", which is installed for every user of the machine. Ask whoever administers it, or use the AppImage.",[31,750,751,754],{},[18,752,753],{},"You have to sign in every time you open the app."," No keyring is running. Install GNOME Keyring, KWallet or KeePassXC and sign in once more.",[756,757,758],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":267,"searchDepth":280,"depth":287,"links":760},[761,762,769,770,771,772,773],{"id":25,"depth":280,"text":26},{"id":251,"depth":280,"text":252,"children":763},[764,765,766,767,768],{"id":256,"depth":287,"text":257},{"id":360,"depth":287,"text":361},{"id":389,"depth":287,"text":390},{"id":408,"depth":287,"text":197},{"id":436,"depth":287,"text":208},{"id":456,"depth":280,"text":457},{"id":491,"depth":280,"text":492},{"id":562,"depth":280,"text":563},{"id":685,"depth":280,"text":686},{"id":705,"depth":280,"text":706},"Debian, Ubuntu, Fedora, Arch, AppImage and Flatpak — which package to use, how updates work, and the Wayland note.","md",{},30,"\u002Fdocs\u002Flinux","linux",{"title":5,"description":774},"coming-soon","docs\u002Flinux","f9wpcKqpu2a51lrf7k5sV6M7B1ljuTBrgCTpSXZE2uw",[785,790,794,798,799,804,808],{"path":786,"title":787,"platform":788,"status":789},"\u002Fdocs\u002Fexam-day","Before exam day","all","available",{"path":791,"title":792,"platform":793,"status":789},"\u002Fdocs\u002Fmacos","Olympiads on macOS","macos",{"path":795,"title":796,"platform":797,"status":781},"\u002Fdocs\u002Fwindows","Olympiads on Windows","windows",{"path":778,"title":5,"platform":779,"status":781},{"path":800,"title":801,"platform":802,"status":803},"\u002Fdocs\u002Fios","Olympiads on iPhone and iPad","ios","beta",{"path":805,"title":806,"platform":807,"status":803},"\u002Fdocs\u002Fandroid","Olympiads on Android","android",{"path":809,"title":810,"platform":811,"status":789},"\u002Fdocs\u002Fweb","Olympiads on the web","web",1788836869928]