在 Vagrant 中通过共享文件访问 CKAN 源文件
Access CKAN Source Files Via Shared Files In Vagrant
背景信息
我已经将 CKAN 安装到 Vag运行t 环境中,我希望能够查看和编辑配置文件 (etc/ckan
) 和源文件 (/usr/lib/ckan
) 在我本地机器上的文本编辑器中(不是在 Vim over ssh 中)。这是我的文件夹结构:
CKAN/
VagrantFile
ckan-config/
ckan-source/
我 VagrantFile
中的以下两行允许我查看本地桌面中的 ckan-config
和 ckan-source
文件夹:
config.vm.synced_folder "ckan-config/", "/etc/ckan"
config.vm.synced_folder "ckan-source/", "/usr/lib/ckan"
这是我的问题
上面的第一行同步了 ckan-config
文件夹(包含 datapush_settings.py
和 default/development.ini
之类的东西)并且工作正常。但是,如果我不对第二行进行注释,那么 CKAN 将不起作用。我收到 500 内部服务器错误。
我试过注释掉第二行,启动 Vag运行t 框,取消注释,然后 运行 vagrant reload
但 CKAN 仍然无法启动。我仍然得到相同的 500 内部服务器错误。
我最初是如何创建本地文件夹的
- 创建了一个工作的 CKAN 环境
vagrant ssh
进入
- 创建了一个新的 git 存储库并向其中添加了
/etc/ckan
- 创建了另一个新的 git 存储库并将
/usr/lib/ckan
添加到其中
- 退出 ssh
- 进入了
VagrantFile
所在的同一目录
- git 克隆了两个存储库
- 将两行(以上)添加到
VagrantFile
- 运行
vagrant reload
抱歉这么久 post。只想从一开始就把一切都说清楚。提前感谢您的帮助。
您需要确保 root
用户拥有您的文件夹,因为您从本地主机同步它们,默认所有者将是 vagrant
使用
更改您的设置
config.vm.synced_folder "ckan-config/", "/etc/ckan", owner: "root", group: "root"
config.vm.synced_folder "ckan-source/", "/usr/lib/ckan", owner: "root", group: "root"
您可能还需要检查权限,对于 /usr/lib/ckan
文件夹,您可能需要添加 mount_options: ["dmode:775" ,"fmode=664"]
这是使用 Vag运行t 和 ckan 的好方法。我建议你从头开始重新创建这两个目录:
- 将这两行添加到您的 Vag运行tfile
vagrant reload
vagrant ssh
- 重新运行三个CKAN install steps:“2.将CKAN安装到Python虚拟环境中”“4.创建一个CKAN配置文件”“8.Link到who.ini
注意我这样做了 运行 Beaker 的一个问题,这里有详细的解决方法:https://github.com/ckan/ckan/issues/3512
通过复制源目录(通过 git),您可能搞砸了安装或 virtualenv 的一些细微之处 - 例如隐藏文件、符号链接等 - 根据该错误消息,您最终没有在 virtualenv 中安装 CKAN。最好先将这些行添加到您的 Vag运行t 文件中,而不是在安装之后。
背景信息
我已经将 CKAN 安装到 Vag运行t 环境中,我希望能够查看和编辑配置文件 (etc/ckan
) 和源文件 (/usr/lib/ckan
) 在我本地机器上的文本编辑器中(不是在 Vim over ssh 中)。这是我的文件夹结构:
CKAN/
VagrantFile
ckan-config/
ckan-source/
我 VagrantFile
中的以下两行允许我查看本地桌面中的 ckan-config
和 ckan-source
文件夹:
config.vm.synced_folder "ckan-config/", "/etc/ckan"
config.vm.synced_folder "ckan-source/", "/usr/lib/ckan"
这是我的问题
上面的第一行同步了 ckan-config
文件夹(包含 datapush_settings.py
和 default/development.ini
之类的东西)并且工作正常。但是,如果我不对第二行进行注释,那么 CKAN 将不起作用。我收到 500 内部服务器错误。
我试过注释掉第二行,启动 Vag运行t 框,取消注释,然后 运行 vagrant reload
但 CKAN 仍然无法启动。我仍然得到相同的 500 内部服务器错误。
我最初是如何创建本地文件夹的
- 创建了一个工作的 CKAN 环境
vagrant ssh
进入- 创建了一个新的 git 存储库并向其中添加了
/etc/ckan
- 创建了另一个新的 git 存储库并将
/usr/lib/ckan
添加到其中 - 退出 ssh
- 进入了
VagrantFile
所在的同一目录 - git 克隆了两个存储库
- 将两行(以上)添加到
VagrantFile
- 运行
vagrant reload
抱歉这么久 post。只想从一开始就把一切都说清楚。提前感谢您的帮助。
您需要确保 root
用户拥有您的文件夹,因为您从本地主机同步它们,默认所有者将是 vagrant
使用
更改您的设置config.vm.synced_folder "ckan-config/", "/etc/ckan", owner: "root", group: "root"
config.vm.synced_folder "ckan-source/", "/usr/lib/ckan", owner: "root", group: "root"
您可能还需要检查权限,对于 /usr/lib/ckan
文件夹,您可能需要添加 mount_options: ["dmode:775" ,"fmode=664"]
这是使用 Vag运行t 和 ckan 的好方法。我建议你从头开始重新创建这两个目录:
- 将这两行添加到您的 Vag运行tfile
vagrant reload
vagrant ssh
- 重新运行三个CKAN install steps:“2.将CKAN安装到Python虚拟环境中”“4.创建一个CKAN配置文件”“8.Link到who.ini
注意我这样做了 运行 Beaker 的一个问题,这里有详细的解决方法:https://github.com/ckan/ckan/issues/3512
通过复制源目录(通过 git),您可能搞砸了安装或 virtualenv 的一些细微之处 - 例如隐藏文件、符号链接等 - 根据该错误消息,您最终没有在 virtualenv 中安装 CKAN。最好先将这些行添加到您的 Vag运行t 文件中,而不是在安装之后。