FLATPAK-CREATE-USB(1)

πŸ’– FLATPAK CREATE-USB πŸ’–

okay bestie, so this is the flatpak create-usb page β€” the one in the flatpak manual, section 1. it's the "put ur apps on a USB stick and go" tool. sit down, get comfy, we're doing this. πŸŽ€


✨ NAME ✨

flatpak-create-usb β€” copy apps and/or runtimes onto removable media. that's it, that's the job. πŸ¦‹


✨ SYNOPSIS ✨

flatpak create-usb [OPTION...] MOUNT-PATH REF...

✨ DESCRIPTION ✨

So here's the whole vibe: this copies the apps and/or runtimes you name as REFs onto the removable media that's mounted at MOUNT-PATH, and it brings along all the dependencies and metadata you'd need to actually install them. πŸ’…

It's one way of moving flatpaks between computers without needing an Internet connection. iconic, honestly.

After you run this command, you can plug the USB drive into another computer that already has the relevant remote(s) configured, and Flatpak will install or update from the drive offline (details below πŸ‘‡). And if that computer is online? Then the drive just acts as a cache β€” some objects get pulled off the drive, and others come from the Internet. Either way, she works. ✨

For this process to work, a collection ID must be configured on the relevant remotes on both the source and destination computers, and on the remote server. don't skip this, fr fr, it will not work and you will be sad 😭

On the destination computer, you can install from the USB (or from any mounted filesystem, honestly) by using the --sideload-repo option with flatpak install. You can also set up sideload paths using symlinks β€” peep flatpak(1) for that. Flatpak also ships some systemd units that automatically sideload from hot-plugged USB drives, but those may or may not be enabled depending on your Linux distribution. distribution-dependent, yk how it is. πŸ™ˆ

Now, about each REF argument: it's a full or partial identifier in the flatpak ref format, which looks like this:

(app|runtime)/ID/ARCH/BRANCH

Every element except ID is optional and can be left out, including the slashes, so most of the time you literally just need to type the ID. anything you leave out gets matched against what's installed, and if there are multiple matches, you get an error message listing the alternatives. it's giving helpful, not shady. πŸ’œ

By default this looks for both installed apps and runtimes matching the given REF, but you can narrow that down with the --app or --runtime option. ur call, bestie.

All REFs must be in the same installation (user, system, or other). Otherwise it's ambiguous which repository metadata refs to put on the USB drive. one installation at a time, no mixing. periodt. πŸ‘‘

By default, flatpak create-usb uses .ostree/repo as the destination directory under MOUNT-PATH. But if you specify a different location with --destination-repo, a symbolic link will be created for you in .ostree/repos.d. That way β€” either path you take β€” the repository will be found by flatpak (and other consumers of libostree) for install/update operations. cute and consistent. 🫢

And unless you override it with --system, --user, or --installation, this command searches both the system-wide installation and the per-user one for REF, and errors out if it exists in more than one. so if it's in both places, she's gonna yell. πŸ’€


✨ OPTIONS ✨

The following options are understood:

  • -h, --help β€” show help options and exit. the classic. 🌸
  • -u, --user β€” copy refs from the per-user installation.
  • --system β€” copy refs from the default system-wide installation.
  • --installation=NAME β€” copy refs from a system-wide installation specified by NAME among those defined in /etc/flatpak/installations.d/. using --installation=default is equivalent to using --system.
  • --app β€” assume that all REFs are apps if not explicitly specified.
  • --runtime β€” assume that all REFs are runtimes if not explicitly specified.
  • --destination-repo=DEST β€” create the repository in DEST under MOUNT-PATH, rather than the default location.
  • --allow-partial β€” don't print a warning when exporting partially installed commits, for example locale extensions without all languages. > heads up: these can cause problems when installing them, for example if the language config is different on the installing side. so like… know what you're doing. 😭
  • -v, --verbose β€” print debug information during command processing. for when u need to see everything. πŸ”₯
  • --ostree-verbose β€” print OSTree debug information during command processing. even more everything. ✨

✨ EXAMPLES ✨

$ flatpak create-usb
/run/media/mwleeds/1a9b4cb2-a7ef-4d9b-91a5-6eaf8fdd2bf6/
com.endlessm.wiki_art.en

look at her go. πŸ’…


✨ SEE ALSO ✨

flatpak(1), flatpak remote-modify(1), flatpak-install(1), flatpak-list(1), ostree-create-usb(1)


okay that's the whole page, bestie. πŸŽ€ this was the flatpak create-usb manual β€” FLATPAK CREATE-USB(1) β€” brought to you by the flatpak manual pages themselves. go forth and put ur apps on a stick. mwah. πŸ’–βœ¨πŸ¦‹πŸ‘‘

πŸ“¦ where this page comes from