root
This commit is contained in:
17
install.sh
17
install.sh
@@ -238,7 +238,7 @@ build_from_source() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 设置目录权限
|
# 设置目录权限(允许当前用户访问,但服务运行时是 root)
|
||||||
sudo chown -R root:root "$SOURCE_DIR" 2>/dev/null || true
|
sudo chown -R root:root "$SOURCE_DIR" 2>/dev/null || true
|
||||||
|
|
||||||
cd "$SOURCE_DIR"
|
cd "$SOURCE_DIR"
|
||||||
@@ -247,19 +247,23 @@ build_from_source() {
|
|||||||
sudo git config --global --add safe.directory "$SOURCE_DIR" 2>/dev/null || true
|
sudo git config --global --add safe.directory "$SOURCE_DIR" 2>/dev/null || true
|
||||||
git config --global --add safe.directory "$SOURCE_DIR" 2>/dev/null || true
|
git config --global --add safe.directory "$SOURCE_DIR" 2>/dev/null || true
|
||||||
|
|
||||||
# 下载依赖
|
# 下载依赖(使用 sudo 以 root 用户执行)
|
||||||
echo -e "${BLUE}下载 Go 依赖...${NC}"
|
echo -e "${BLUE}下载 Go 依赖...${NC}"
|
||||||
if ! go mod download 2>&1; then
|
if ! sudo bash -c "cd '$SOURCE_DIR' && go mod download" 2>&1; then
|
||||||
echo -e "${RED}下载依赖失败${NC}"
|
echo -e "${RED}下载依赖失败${NC}"
|
||||||
show_build_alternatives
|
show_build_alternatives
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 编译
|
# 编译到临时文件(在用户有权限的目录),然后移动到目标位置
|
||||||
echo -e "${BLUE}编译二进制文件...${NC}"
|
echo -e "${BLUE}编译二进制文件...${NC}"
|
||||||
|
TEMP_BINARY=$(mktemp)
|
||||||
BINARY_PATH="$SOURCE_DIR/agent"
|
BINARY_PATH="$SOURCE_DIR/agent"
|
||||||
if GOOS=linux GOARCH=${ARCH} CGO_ENABLED=0 go build -buildvcs=false -ldflags="-w -s" -o "$BINARY_PATH" ./cmd/agent 2>&1; then
|
|
||||||
|
# 使用 sudo 以 root 用户编译,直接输出到目标位置
|
||||||
|
if sudo bash -c "cd '$SOURCE_DIR' && GOOS=linux GOARCH=${ARCH} CGO_ENABLED=0 go build -buildvcs=false -ldflags='-w -s' -o '$BINARY_PATH' ./cmd/agent" 2>&1; then
|
||||||
if [ -f "$BINARY_PATH" ] && [ -s "$BINARY_PATH" ]; then
|
if [ -f "$BINARY_PATH" ] && [ -s "$BINARY_PATH" ]; then
|
||||||
|
sudo chmod +x "$BINARY_PATH"
|
||||||
echo -e "${GREEN}✓ 编译成功${NC}"
|
echo -e "${GREEN}✓ 编译成功${NC}"
|
||||||
else
|
else
|
||||||
echo -e "${RED}编译失败:未生成二进制文件${NC}"
|
echo -e "${RED}编译失败:未生成二进制文件${NC}"
|
||||||
@@ -272,6 +276,9 @@ build_from_source() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# 清理临时文件
|
||||||
|
rm -f "$TEMP_BINARY" 2>/dev/null || true
|
||||||
|
|
||||||
# 复制到安装目录(可选,保留在源码目录供 run.sh 使用)
|
# 复制到安装目录(可选,保留在源码目录供 run.sh 使用)
|
||||||
sudo mkdir -p "$INSTALL_DIR"
|
sudo mkdir -p "$INSTALL_DIR"
|
||||||
sudo cp "$BINARY_PATH" "$INSTALL_DIR/$BINARY_NAME"
|
sudo cp "$BINARY_PATH" "$INSTALL_DIR/$BINARY_NAME"
|
||||||
|
|||||||
Reference in New Issue
Block a user