ยง2023-07-01

  1. Download prebuilt binary
$ wget https://github.com/caddyserver/xcaddy/releases/download/v0.3.4/xcaddy_0.3.4_linux_amd64.deb

$ sudo dpkg -i xcaddy_0.3.4_linux_amd64.deb 
$ dpkg -L xcaddy
/usr
/usr/bin
/usr/bin/xcaddy
  1. use xcaddy to build caddy
$ sudo apt install golang  <-- required
$ mkdir ~/build/yushei-caddy && cd $_
$ time xcaddy build
real    2m8.303s
user    4m57.699s
sys     0m39.399s
$ ./caddy version
v2.6.4 h1:2hwYqiRwk1tf3VruhMpLcYTg+11fCdr8S3jhNAdnPy8=

$ sudo cp -v caddy /usr/bin

h2jammy-http2-test.png


  1. Archlinux
wget https://aur.archlinux.org/cgit/aur.git/snapshot/xcaddy.tar.gz
$ tar xvf src/xcaddy.tar.gz 
xcaddy/
xcaddy/.SRCINFO
xcaddy/PKGBUILD
$ cd xcaddy/
$ makepkg -s
$ makepkg -i
==> WARNING: A package has already been built, installing existing package...
==> Installing package xcaddy with pacman -U...
[sudo] password for alexlai: 
loading packages...
resolving dependencies...
looking for conflicting packages...

Packages (1) xcaddy-0.3.4-1

Total Installed Size:  3.11 MiB

:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring                                                                                                                                                                [#######################################################################################################################] 100%
(1/1) checking package integrity                                                                                                                                                              [#######################################################################################################################] 100%
(1/1) loading package files                                                                                                                                                                   [#######################################################################################################################] 100%
(1/1) checking for file conflicts                                                                                                                                                             [#######################################################################################################################] 100%
(1/1) checking available disk space                                                                                                                                                           [#######################################################################################################################] 100%
:: Processing package changes...
(1/1) installing xcaddy                                                                                                                                                                       [#######################################################################################################################] 100%
:: Running post-transaction hooks...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Refreshing PackageKit...
[alexlai@orangepi5 xcaddy]$ xcaddy version
(devel)
[alexlai@orangepi5 xcaddy]$ which xcaddy
/usr/bin/xcaddy