草庐IT

项目部署到Linux

全部标签

go - 如何在go项目中供应所有包

我从Github克隆了一个项目,它的依赖项没有被出售。通常,运行goget./...在项目目录中应该安装所有依赖项。但是我正在使用govendor我希望所有依赖项都显示在我的vendor文件夹中。通常我会运行govendorinit创建vendor文件夹,然后govendorfetchgithub.com/some/dependency对于我所有的依赖。有没有一个govendor模拟goget./...的命令?govendorget./...不起作用。 最佳答案 来自FAQ:Q:HowdoIpopulatethevendorfold

mongodb 获取最后 30 分钟前插入的项目

我想检查在过去30分钟内是否使用mongodb在golang中添加了项目。这是我的类型模型:typePayCoinstruct{IDbson.ObjectId`json:"id"bson:"_id"`OwnerIDbson.ObjectId`json:"owner_id"bson:"owner_id"`PublicKeystring`json:"public_key"bson:"public_key"`PrivateKeystring`json:"-"bson:"private_key"`QrCodestring`json:"qrcode"bson:"-"`ExchangeRateui

go - 将 Caddy 导入 go 项目依赖项失败

我想将Caddy导入到一个go项目中,但我似乎无法提出最基本的示例。我尝试使用dep或gomod拉取依赖项,但都失败了。dep初始化Noversionsofgolang.org/x/textmetconstraints:v0.3.0:unabletoupdatecheckedoutversion::commandfailed:[gitcheckoutf21a4dfb5e38f5895301dc265a8def02365cc3d0]:exitstatus128v0.2.0:unabletoupdatecheckedoutversion::commandfailed:[gitcheckou

go - 在 golang 项目中查询 sqlx 后数据库连接仍在使用中

我在一个使用sqlx和postgres的golang项目中工作。当应用程序启动时,我打开一个与数据库的连接并像这样使用它:varconnRO*sqlx.DBvarconnRW*sqlx.DB.../GetInstance-willreturntheconnectionopenedtothedatabasefuncGetInstance(readonlybool)*sqlx.DB{ifreadonly{returnconnRO}returnconnRW}问题是在某些代码块中连接仍在使用中,这里有一个例子:instanceRW:=database.GetInstance(false)ins

linux - Size() vs ls -la vs du -h 哪个尺寸正确?

我正在编译一个自定义内核,我想测试图像文件的大小。这些是结果:ls-la|grepvmlinux-rwxr-xr-x1rootroot8167158May2112:14vmlinuxdu-hvmlinux3.8Mvmlinuxsizevmlinuxtextdatabssdechexfilename222124867614854476834421643485f4vmlinux由于它们都显示不同的尺寸,那么哪一个最接近实际图像尺寸?它们为什么不同? 最佳答案 它们都是正确的,它们只是显示不同的尺寸。ls显示文件的大小(当您打开并阅读它时

go - 如何在 Travis-CI 上将 Go 项目从 Linux 交叉编译到 Windows

因为Travis-CI对Go的原生Windows支持似乎很缺乏,我想走这条路。我最好怎么做? 最佳答案 这为Linux本地构建,为OSX本地构建,并为windows交叉编译,作为linux构建的一部分:.travis.yml:language:gosudo:falsematrix:include:-go:tipos:linuxenv:CROSS_COMPILE=true-go:tipos:osxbefore_install:-if["$CROSS_COMPILE"="true"];thensudoaptupdate;fiinstal

go - 使用/cmd 结构构建 Go 项目时出错(多个入口点)

这是我的项目的目录结构(~/go/src/bitbucket.org/a/b):├──cmd│  ├──c│  │  └──main.go│  └──d│  └──main.go├──config│  ├──config.go│  ├──default.json│  └──development.json├──go.mod├──go.sum├──log│  └──log.go├──main.go我需要编译2个二进制文件(cmd/中的每个模块一个)。我尝试从项目根目录(~/go/src/bitbucket.org/a/b)运行GO111MODULE=ongobuild./cmd/c。它什

linux - 如果 block 设备已经格式化,则退出 mkfs 命令

我正在编写一个实用程序,它需要运行mkfs来格式化block设备。我使用go的exec包为每种文件系统类型运行正确的mkfs命令,例如在ext2的情况下:err:=exec.CommandContext(ctx,"mkfs.ext2","-F",path).Run()不幸的是,如果block设备已经格式化,mkfs将要求确认(并挂起)。这意味着我被迫传递危险的-F标志以跳过此检查,如果设备已经格式化则丢失数据。我无法为上下文添加超时,因为除此确认之外,格式化可能需要一段时间。我找不到一个mkfs标志,如果block设备已经格式化,它会返回错误而不是确认检查。我宁愿不依赖于解析mkfs命

转到/pkg/工具/linux_amd64/链接 : running gcc failed: exit status 1/usr/bin/ld: cannot find -lgdal

我正在尝试在我的源代码上运行gobuild。go/pkg/tool/linux_amd64/link:runninggccfailed:exitstatus1/usr/bin/ld:cannotfind-lgdalcollect2:error:ldreturned1exitstatus我的LD_LIBRARY_PATH变量包含/home/fzd/project/lib64,libgdal.so文件目录的路径。我的PKG_CONFIG_PATH包含指向具有以下内容的.pc文件目录的路径:prefix=/home/fzd/projectexec_prefix=${prefix}libdir

linux - golang 使用父进程命名空间在 linux 中读取文件

我在linux中使用setns系统调用来设置当前go进程的NET命名空间。这个命名空间改变了/sys/class/net对当前进程的显示方式。但是,如果我尝试使用golangapi查看这些文件,我只会看到父View(没有命名空间)。我认为这是因为go在没有继承父namespace的情况下fork。我如何使用go读取/sys/class/net中的文件,以便setns系统调用在正在读取文件的child中持续存在。 最佳答案 原来这是一个已知的“wontfix”问题:https://github.com/golang/go/issues