下面给你一份在 Jenkins 上部署 Debian 包(.deb)的常见做法与步骤,适用于构建 → 打包 → 分发/安装 .deb 的典型场景。
Jenkins 部署 Debian 通常有三种方式:
下面以 方式 2(最常用) 为例说明。
stage('Checkout') {
git branch: 'main', url: 'git@github.com:your/repo.git'
}
假设你已有 debian/ 目录(使用 dpkg-buildpackage)
stage('Build Deb') {
sh '''
sudo apt update
sudo apt install -y build-essential dpkg-dev
dpkg-buildpackage -us -uc
'''
}
生成的文件一般在上级目录:
../your-package_1.0.0_amd64.deb
使用 SSH Publisher 或 scp:
stage('Deploy') {
sh '''
scp ../your-package_1.0.0_amd64.deb user@target:/tmp/
'''
}
⚠ 建议使用 Jenkins Credentials + SSH Agent
stage('Install') {
sh '''
ssh user@target "sudo dpkg -i /tmp/your-package_1.0.0_amd64.deb || sudo apt -f install -y"
'''
}
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'git@github.com:your/repo.git'
}
}
stage('Build Deb') {
steps {
sh 'dpkg-buildpackage -us -uc'
}
}
stage('Deploy') {
steps {
sh 'scp ../*.deb user@target:/tmp/'
sh 'ssh user@target "sudo dpkg -i /tmp/*.deb || sudo apt -f install -y"'
}
}
}
}
.debsudo apt update
sudo apt install your-package
优点:
sudo apt -f install -y
sudoagent {
docker { image 'debian:12' }
}
如果你愿意,我可以:
你现在的场景是?