Kh.
KyuHyuk Blog

Homebrew๐Ÿบ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  macOS์— GnuPG2 ์„ค์น˜ํ•˜๊ธฐ

Ordinary Life

์ž‘์—…์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Mac์— Homebrew๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  macOS์— GnuPG2๋ฅผ ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค. ํ˜น์‹œ Homebrew ์—†์ด ์‚ฌ์šฉ์„ ์›ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ์„ ๊ฑฐ ๊ฐ™์•„ ๊ฐ„๋‹จํ•œ ์Šคํฌ๋ฆฝํŠธ์™€ ํ•จ๊ป˜ ๊ธ€์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์•„๋ž˜์˜ Shell Script๋ฅผ gnupg2.sh๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
#!/bin/sh
set -o nounset
set -o errexit

curl https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.40.tar.bz2 | tar xvj
curl https://gnupg.org/ftp/gcrypt/npth/npth-1.6.tar.bz2 | tar xvj
curl https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.46.tar.bz2 | tar xvj
curl https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.10.1.tar.bz2 | tar xvj
curl https://gnupg.org/ftp/gcrypt/libksba/libksba-1.6.2.tar.bz2 | tar xvj
curl https://gnupg.org/ftp/gcrypt/libassuan/libassuan-2.5.5.tar.bz2 | tar xvj
curl https://gnupg.org/ftp/gcrypt/pinentry/pinentry-1.2.1.tar.bz2 | tar xvj

echo "# npth 1.6"
( cd npth-1.6 && ./configure )
make -C npth-1.6
make check -C npth-1.6
make install -C npth-1.6

echo "# libgpg-error-1.46"
( cd libgpg-error-1.46 && ./configure \
--enable-install-gpg-error-config \
--disable-pinentry-qt \
--disable-pinentry-emacs \
--disable-inside-emacs \
--disable-pinentry-gtk2 \
--disable-pinentry-curses \
--enable-pinentry-tty )
make -C libgpg-error-1.46
make check -C libgpg-error-1.46
make install -C libgpg-error-1.46

echo "# libgcrypt 1.10.1"
( cd libgcrypt-1.10.1 && ./configure \
--disable-pinentry-qt \
--disable-pinentry-emacs \
--disable-inside-emacs \
--disable-pinentry-gtk2 \
--disable-pinentry-curses \
--enable-pinentry-tty \
--with-libgpg-error-prefix=/usr/local )
make -C libgcrypt-1.10.1
make check -C libgcrypt-1.10.1
make install -C libgcrypt-1.10.1

echo "# libksba 1.6.2"
( cd libksba-1.6.2 && ./configure \
--disable-pinentry-qt \
--disable-pinentry-emacs \
--disable-inside-emacs \
--disable-pinentry-gtk2 \
--disable-pinentry-curses \
--enable-pinentry-tty )
make -C libksba-1.6.2
make check -C libksba-1.6.2
make install -C libksba-1.6.2

echo "# libassuan 2.5.5"
( cd libassuan-2.5.5 && ./configure \
--disable-pinentry-qt \
--disable-pinentry-emacs \
--disable-inside-emacs \
--disable-pinentry-gtk2 \
--disable-pinentry-curses \
--enable-pinentry-tty )
make -C libassuan-2.5.5
make check -C libassuan-2.5.5
make install -C libassuan-2.5.5

echo "# pinentry 1.2.1"
( cd pinentry-1.2.1 && ./configure )
make -C pinentry-1.2.1
make check -C pinentry-1.2.1
make install -C pinentry-1.2.1

echo "# gnupg 2.2.40"
( cd gnupg-2.2.40 && ./configure \
--enable-gpg-is-gpg2 \
--with-pinentry-pgm )
make -C gnupg-2.2.40
make check -C gnupg-2.2.40
make install -C gnupg-2.2.40
make install -C gnupg-2.2.40/dirmngr
  1. ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋กœ ๋นŒ๋“œ ๋ฐ ์„ค์น˜๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.
chmod +x ./gnupg2.sh
sudo ./gnupg2.sh
  1. ๋ชจ๋“  ์ž‘์—…์ด ๋๋‚˜๋ฉด, export GPG_TTY=$(tty)๋ฅผ ~/.zshrc ํŒŒ์ผ์˜ ๋งจ ์•„๋žซ์ค„์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  2. echo "test" | gpg --clearsign๋ฅผ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•ด์„œ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.