Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cookiengineer/pacman-backup
:floppy_disk: Pacman Cache management tool for off-the-grid updates via Sneakernet (USB drives) or Meshnets (LAN / Wi-Fi)
https://github.com/cookiengineer/pacman-backup
archlinux cache-proxy mesh-network offline-tool pacman usb-drive
Last synced: 14 days ago
JSON representation
:floppy_disk: Pacman Cache management tool for off-the-grid updates via Sneakernet (USB drives) or Meshnets (LAN / Wi-Fi)
- Host: GitHub
- URL: https://github.com/cookiengineer/pacman-backup
- Owner: cookiengineer
- License: gpl-3.0
- Created: 2020-12-12T04:34:02.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-17T14:02:20.000Z (about 2 months ago)
- Last Synced: 2024-09-18T04:25:33.626Z (about 2 months ago)
- Topics: archlinux, cache-proxy, mesh-network, offline-tool, pacman, usb-drive
- Language: Go
- Homepage:
- Size: 111 KB
- Stars: 32
- Watchers: 5
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE_GPL3.txt
Awesome Lists containing this project
README
# Pacman Backup
Offline Pacman Cache management tool that allows off-the-grid updates via
sneakernet (usb drives) or mesh Wi-Fi networks.## Share Updates via USB Drive
In the below example, make sure that `usb-drive` is writable. Replace the path with
the correct one that points to your mounted USB drive.**Step 1**: On the machine _with_ internet connection, insert and mount the USB drive.
```bash
# Machine with internet connection
pacman-backup download /run/media/$USER/usb-drive;
pacman-backup cleanup /run/media/$USER/usb-drive;
sync;# Unmount the USB drive and sneak/walk to other machine
```**Step 2**: On the machine _without_ internet connection, insert and mount the USB drive.
```bash
# Machine without internet connection
pacman-backup upgrade /run/media/$USER/usb-drive;
```## Share Updates via Wi-Fi Mesh Network
In the below example, the machine _with_ internet connection has the IP `192.168.0.10`.
Replace the IP with the correct one that matches your setup. If in doubt, use `ip` or `ifconfig`.**Step 1**: On the machine with internet connection, download all updates and serve them as
local pacman archive mirror.```bash
# Machine with internet connection
sudo pacman-backup download;
pacman-backup serve;
```**Step 2**: On the machine _without_ direct internet connection, download updates from the
local pacman archive mirror.```bash
# Machine without internet connection
sudo pacman-backup download http://192.168.0.10:15678/;
sudo pacman-backup upgrade;
```## Manual Export and Import of Database Files and Package Cache
If you don't trust automated upgrades and want to use `pacman` directly, that's fine. You
can do so by using `export` on the machine with internet connection and `import` on the
machine without internet connection.```bash
# Machine with internet connection
sudo pacman -Syuw;
pacman-backup export /run/media/$USER/usb-drive;
sync;# Unmount the USB drive and sneak/walk to other machine
``````bash
# Machine without internet connection
sudo pacman-backup import /run/media/$USER/usb-drive;
sync;sudo pacman -Su;
```# License
GPL3