🫠

openSUSE Packman repo ローカルミラーを雑に建てる

2024/06/04に公開

経緯

openSUSE Packman repo の ref や up などをするときおそすぎてラップトップを破壊してしまう

  • 原因(推測):

    • 彼女の家の回線が貧弱すぎ(HPNA, 子機のRJ45ポートが100BASE-TX, ひどいときは10mbpsでない)
    • Packmanのミラーをやっているところが日本に(たぶん)ない
      • いちばん近いのでcnのがあるっぽいがおそい(しらん)
      • 本家はgermanyでそもそも遠いのでおそい
  • 解決策:

    • ミラーを建てて公開運用する
      • さすがに無理(コスト的な意味で)
      • どんだり人間なのでセキュリティリスク等もこわいねえ
    • 自前でローカルな勝手どんだりミラーを建てて自分だけで使う
      • 幸い、自分の部屋まではだいたい500mbpsくらいでる回線が来てる
        • 部屋の一番上にいるOpenWrtルータにはZeroTierを導入している
        • それ以外のコンピュータにもだいたいzerotier-oneが入っているので
          • IP直打ちでアクセスできる(NAT越えの問題は無い)
      • 物理距離的な問題は解決できそう
    • Tumbleweedが入っているデスクPC a.k.a. 母艦 がある
      • 必要なときだけOpenWrtルータからwakeonlanで電源オン運用している
      • Packmanが遅い(彼女の家回線から)ときだけsshしてrsyncしてzypper upする
    • やってみた

前提

  • おうちにあるopenSUSE TumbleweedマシンでPackman repo のミラーを建てる
  • Zerotier 越しでミラーサーバにアクセスしたい
    • おうちSUSEにもZerotier-oneがインストール済みで、192.168.194.194 が当たってる
    • 192.168.194.194/packman をアドレスバーに入れたらディレクトリ構造が見えるようにする

本家のrepoからrsyncする

$ sudo mkdir -p /srv/repo
$ rsync -av rsync -av --delete rsync://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/ /srv/repo/packman/
$ sudo ln -s /srv/repo/packman /srv/www/htdocs/packman
$ sudo chmod 777 /srv/www/htdocs/*
$ sudo chown wwwrun:www /srv/www/htdocs/*
  • 自分以外アクセスしない(できない)のでパーミッションは適当(ダメか❓)
  • 必要なときだけミラーを使うのでcronでの運用はしない
    • つまり必要なときだけrsyncするしsystemctl start apache2.serviceをする(ええ)

apacheのインストール

$ sudo zypper in  apache2
$ sudo vim /etc/apache2/httpd.conf

以下を追記

<Directory "/srv/www/htdocs/packman">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
$ sudo systemctl start apache2
$ systemctl status apache2

クライアント側操作

  • いちおう、ブラウザからサーバのアドレス/packmanでディレクトリ一覧が見えることを確認する
$ sudo zypper ar http://192.168.194.194/packman my-own-packman
$ sudo zypper ref
$ sudo zypper up (--allow-vendor-change)

うごかなかったらごめん!

Discussion