Warning
アーカイブ予定のお知らせ(2026-02-18)
このリポジトリは近く GitHub 上で Archived(read-only)化します。既存ユーザー向けに理由と移行先を明記します。
理由
- 本リポジトリの主要機能は
devsyncに統合済みのため。
移行先 / 代替手段
devsync(後継ツール): https://github.com/scottlz0310/devsync
既存利用中の方は、必要に応じて devsync への移行をご検討ください。
システムと各種パッケージマネージャを統合的に更新するツール
最新リリース: v0.10.0
sysupは、複数のパッケージマネージャを一括で更新できるPython製のCLIツールです。
APT、Snap、Homebrew、npm、pnpm、Rustupなど、14種類のパッケージマネージャに対応しています。
- 🚀 統合更新: 複数のパッケージマネージャを一度に更新
- 🎨 美しい出力: Richライブラリによる見やすいターミナル表示
- ⚙️ 柔軟な設定: TOML形式の設定ファイルで細かくカスタマイズ
- 🔒 安全性: 多重実行防止、日次実行チェック、ドライランモード
- 📊 統計情報: 更新結果のサマリー表示とログ保存
- 🔔 デスクトップ通知: 更新完了時に通知を表示
- 💾 バックアップ: 更新前にパッケージリストを自動バックアップ
- ♻️ セルフアップデート:
uv self updateを自動実行し、uv 本体とツール双方を常に最新に維持 - 🐧 WSL統合: WSL環境での自動実行設定
- ⚡ 並列更新: 複数のパッケージマネージャを同時に更新
- APT - Debian/Ubuntu系パッケージマネージャ
- Snap - Ubuntuスナップパッケージ
- Flatpak - Linuxアプリケーション配布
- Firmware - ファームウェア更新(fwupdmgr)
- Homebrew - macOS/Linuxパッケージマネージャ
- Scoop - Windowsパッケージマネージャ
- npm - Node.jsグローバルパッケージ
- pnpm - 高速Node.jsパッケージマネージャ
- nvm - Node Version Manager
- pipx - Python CLIツール
- uv tool - Python CLIツール(uvによる管理)
- Rustup - Rustツールチェーン
- Cargo - Rustパッケージ
- Gem - Ruby gems
- Linux (Ubuntu, Debian, Fedora等)
- macOS (Homebrew経由)
- Windows (Scoop経由) ✨ v0.5.0で対応
- WSL (Windows Subsystem for Linux)
- Python 3.11以上
- uv または pipx
- Linux、macOS、Windows、またはWSL環境
- Scoop: Windowsパッケージマネージャ
# Scoopインストール
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression# uvで
uv tool install git+https://github.com/scottlz0310/sysup.git@v0.10.0
# pipxで
pipx install git+https://github.com/scottlz0310/sysup.git@v0.10.0git clone https://github.com/scottlz0310/sysup.git
cd sysup
uv venv --python 3.13
uv pip install -e .最初に設定ウィザードを実行してください:
# 対話型ウィザードで設定
sysup init詳細は 設定ガイド を参照してください。
# 全ての有効な更新を実行
sysup update
# ドライラン(実際には更新しない)
sysup update --dry-run
# 今日既に実行済みでも強制実行
sysup update --force
# 利用可能なupdaterを一覧表示
sysup update --list
# ヘルプ表示
sysup --help
# WSL自動実行をセットアップ
sysup update --setup-wsl- ✅ テストカバレッジ87.41%達成(目標80%超過)
- ✅ 全公開APIにDocstring整備(Googleスタイル)
- ✅ CodeQL自動スキャン導入
- ✅ Secret Scanning + Push Protection有効化
- ✅ Dependabot依存関係管理
- ✅ SECURITY.md作成(脆弱性報告方針)
- ✅ CI/CDカバレッジゲート有効化(80%閾値)
詳細は CHANGELOG を参照してください。
WSL環境でログイン時に自動的にシステム更新を実行できます:
# WSL自動実行をセットアップ
sysup --setup-wsl詳細は WSL自動実行設定ガイド を参照してください。
更新完了時にデスクトップ通知を表示します(Linux/macOS)。
[notification]
enabled = true
on_success = true
on_error = true
on_warning = false更新前にパッケージリストをJSON形式でバックアップします。
[backup]
dir = "~/.local/share/sysup/backups"
enabled = trueバックアップは ~/.local/share/sysup/backups/ に保存されます。
複数のパッケージマネージャを同時に更新して高速化:
[general]
parallel_updates = true古いログファイルを自動的に削除します:
[logging]
retention_days = 30 # 30日以上古いログを削除設定ファイルは ~/.config/sysup/sysup.toml に配置します。
# 設定ディレクトリを作成
mkdir -p ~/.config/sysup
# サンプルをコピー
cp config/sysup.toml.example ~/.config/sysup/sysup.toml
# 編集
vim ~/.config/sysup/sysup.toml[updaters]
# Linux専用
apt = true
snap = true
flatpak = true
firmware = true
# Windows専用
scoop = true
# クロスプラットフォーム
pipx = true
npm = true
pnpm = true
nvm = true
rustup = true
cargo = true
gem = true
brew = true
[logging]
dir = "~/.local/share/sysup"
level = "INFO"
[general]
dry_run = false
cache_dir = "~/.cache/sysup"設定ファイルのサンプルは config/sysup.toml.example を参照してください。
$ sysup --dry-run
╔════════════════════════════════════════╗
║ sysup システム更新 ║
╚════════════════════════════════════════╝
=== システムチェック ===
ℹ ディスク容量: 923.7GB 利用可能
ℹ ネットワーク接続: OK
=== パッケージ更新 ===
ステップ 1/7: APTを更新中 (14%)
ℹ APT パッケージリストを更新中...
✓ APT パッケージリスト更新完了
...
=== 更新サマリー ===
✓ 成功: 7 件
ℹ 実行時間: 45秒
✓ 全ての更新が正常に完了しました一部のupdater(APT、Snapなど)はsudo権限が必要です。事前にsudo -vで認証しておくとスムーズです。
Cargoパッケージを更新するにはcargo-updateが必要です:
# 依存関係をインストール(Ubuntu/Debian)
sudo apt install build-essential pkg-config libssl-dev
# cargo-updateをインストール
cargo install cargo-updatecargo install-update -a 実行時に error while loading shared libraries: libgit2.so.1.9: cannot open shared object file が表示される場合、libgit2 の共有ライブラリが不足しています。Ubuntu/Debian 系であれば以下で解決できます:
sudo apt install libgit2-1.9nvmをgit経由でインストールすることを推奨します:
# 公式インストールスクリプト
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
# シェルを再起動
source ~/.bashrc設定ファイル(~/.config/sysup/sysup.toml)で該当するupdaterをfalseに設定してください。
ログは ~/.local/share/sysup/ に保存されます。
git clone https://github.com/scottlz0310/sysup.git
cd sysup
uv venv --python 3.13
uv pip install -e ".[dev]"uv run pytest# Linter
uv run ruff check .
# Formatter
uv run ruff format .
# 型チェック
uv run basedpyrightMIT License - 詳細は LICENSE を参照してください。
貢献を歓迎します!詳細は CONTRIBUTING.md を参照してください。
scottlz0310
元のBashスクリプト up.sh からPython版への移行プロジェクトです。