sh使用checkinstall为debian/ubuntu创建rkt包(代码片段)

author author     2022-12-20     239

关键词:

#!/bin/bash

# Btased on https://github.com/coreos/rkt/blob/v1.15.0/scripts/install-rkt.sh
#
# Pre-requirement: install the packages:
# - ca-certificates
# - curl
# - gnupg2
# - bash-completion
# - checkinstall
# - wget
#
# Suggestion: sudo apt-get install -y --no-install-recommends ca-certificates curl gnupg2 bash-completion checkinstall wget
#
# Then run this script as a normal user. In the final step, checkinstall will create the package in the location as shown in the output. Install as follows:
# sudo dpkg -i /path/to/the.deb

set -e
set -o pipefail
set -x

cd $(mktemp -d)

version="1.15.0"

export DEBIAN_FRONTEND=noninteractive

curl -sSL https://coreos.com/dist/pubkeys/app-signing-pubkey.gpg | gpg2 --import -
key=$(gpg2 --with-colons --keyid-format LONG -k security@coreos.com | egrep ^pub | cut -d ':' -f5)

wget --progress=bar:force https://github.com/coreos/rkt/releases/download/v"$version"/rkt-v"$version".tar.gz
wget --progress=bar:force https://github.com/coreos/rkt/releases/download/v"$version"/rkt-v"$version".tar.gz.asc
gpg2 --trusted-key "$key" --verify-files *.asc

tar xvzf rkt-v"$version".tar.gz

cat <<EOF >install-pak
#!/bin/bash

# abort/fail on any error
set -e

# fix mkdir issues with checkinstall and fstrans
for dir in /usr/lib/rkt/stage1-images/\\
        /usr/share/man/man1/\\
        /usr/share/bash-completion/completions/\\
        /usr/lib/tmpfiles.d/\\
        /usr/lib/systemd/system/
do
    mkdir -p \$dir 2>/dev/null || :
done

for flavor in fly coreos kvm; do
    install -Dm644 rkt-v$version/stage1-\$flavor.aci /usr/lib/rkt/stage1-images/stage1-\$flavor.aci
done

install -Dm755 rkt-v$version/rkt /usr/bin/rkt

for f in rkt-v$version/manpages/*; do
    install -Dm644 "\$f" "/usr/share/man/man1/\$(basename \$f)"
done

install -Dm644 rkt-v$version/bash_completion/rkt.bash /usr/share/bash-completion/completions/rkt
install -Dm644 rkt-v$version/init/systemd/tmpfiles.d/rkt.conf /usr/lib/tmpfiles.d/rkt.conf

for unit in rkt-gc.timer,service rkt-metadata.socket,service; do
    install -Dm644 rkt-v$version/init/systemd/\$unit /usr/lib/systemd/system/\$unit
done
EOF
chmod +x install-pak

cat <<EOF >preinstall-pak
#!/bin/sh

groupadd --force --system rkt-admin
groupadd --force --system rkt
EOF
chmod +x preinstall-pak

cp rkt-v"$version"/scripts/setup-data-dir.sh postinstall-pak
chmod +x postinstall-pak

cat <<EOF >>postinstall-pak
systemctl daemon-reload
systemd-tmpfiles --create /usr/lib/tmpfiles.d/rkt.conf
EOF

checkinstall -y --pkgname=rkt --pkgversion="$version" --install=no --fstrans=yes ./install-pak

sh使用sqlplus将线轴转换为xls(代码片段)

查看详情

sh使用pandoc将rst转换为markdown(代码片段)

查看详情

sh使用一个图像将音频文件转换为视频文件(代码片段)

查看详情

sh使用透明背景将psd转换为png(代码片段)

查看详情

sh使用imagemagick将svg转换为favicon.ico(代码片段)

查看详情

sh使用ffmpeg将wav文件转换为mp3(代码片段)

查看详情

sh为rstudio服务器使用多个用户(在linux上)(代码片段)

查看详情

sh使用proftpd(带有sftp模块)为密钥验证设置ssh密钥(代码片段)

查看详情

sh使用chown递归地将用户和组设置为文件(代码片段)

查看详情

sh在macos上使用subjectaltname为localhost创建自签名证书(代码片段)

查看详情

sh使用homebrew在万神殿为drupal安装drush和terminus(代码片段)

查看详情

sh使用ffmpeg将m3u8转换为mp4(代码片段)

查看详情

sh使用homebrew在osx上安装ffmpeg以将mp4转换为webm(代码片段)

查看详情

sh我的automatedletsencrypt更新程序的第一次修订为znc和朋友使用letsencrypt工具(代码片段)

查看详情

shell脚本后台运行

参考技术A使用nohup,其中sample.sh为所执行的脚本,out.log为日志输出文件。nohupshsample.sh>out.log&使用sh,其中sample.sh为所执行的脚本,out.log为日志输出文件。shsample.sh>&out.log&&放在启动参数后面表示设置此进程为后... 查看详情

sh使用openssl为jwtjwk(jsonwebtokenjsonwebkey)生成es512和rs256椭圆曲线密钥对(代码片段)

查看详情

sh用于在脚本中交互使用kinit的函数,为错误输入的密码提供重试循环。(代码片段)

查看详情

sh将使用diskutility.app创建的*.cdr图像转换为带有osx终端的*.iso文件(代码片段)

查看详情