首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在vbox共享文件夹上执行收集器会出现只读错误。

在vbox共享文件夹上执行收集器会出现只读错误。
EN

Stack Overflow用户
提问于 2013-05-23 21:52:55
回答 1查看 1.5K关注 0票数 2

我正在尝试使用virtualbox处理django项目。项目目录是指向驻留在主机上的共享文件夹的符号链接。django项目是在没有权限问题的情况下创建的,我成功地在来宾机器上使用Apache托管站点。然而,当我运行收集器时,我得到了OSError: [Errno 30] Read-only file system

是否还有其他用户需要添加vboxsf组?我的用户是班卓琴,而apache的是www-data

还是有别的解决办法?我真的很想把我的文件放在我的主机上。

这是我的装置

  • 主持人: Xubuntu 12.10
  • 嘉宾: Xubuntu 13.04
  • Django: 1.5.1

以下是我的设置步骤中的相关部分。另外,我还启用了django管理员。需要收集的正是这些静态文件。

代码语言:javascript
复制
# add banjo user and apache user to shared folder owernship group
sudo gpasswd -a banjo vboxsf
sudo gpasswd -a www-data vboxsf

ln -s /media/sf_foobar foobar.com
mkdir -p foobar.com/dev
cd foobar.com/dev

mkvirtualenv foobar --no-site-packages
workon foobar

pip install django

django-admin.py startproject foobar

# settings.py
STATIC_ROOT = '/home/banjo/foobar.com/dev/foobar/static/'

python manage.py collectstatic -l

我得到以下错误

代码语言:javascript
复制
(foobar)virtual-machine|foobar: python manage.py collectstatic -l

You have requested to collect static files at the destination
location as specified in your settings.

This will overwrite existing files!
Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: yes
Linking '/home/banjo/.virtualenvs/foobar/local/lib/python2.7/site-packages/django/contrib/admin/static/admin/css/rtl.css'
OSError: [Errno 30] Read-only file system

这是显示所有者和组的文件系统的树。

代码语言:javascript
复制
virtual-machine|foobar.com: tree -L 3 -ug
.
└── [root   vboxsf]  prod
    ├── [root   vboxsf]  foobar
    │   ├── [root   vboxsf]  foobar
    │   ├── [root   vboxsf]  manage.py
    │   └── [root   vboxsf]  static
    ├── [root   vboxsf]  logs
    └── [root   vboxsf]  requirements.txt

我运行了sudo chown -R banjo prod/,但这并没有改变所有权。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-02 03:51:11

问题不在于收藏本身。我使用的是-l标志,它创建静态文件的符号链接。

实际问题是virtualbox 4.1.18不允许在主机上创建符号链接。

我在服务器故障这里上找到了答案。有关更多信息,请参见这张virtualbox票

我在这里重新发布解决方案,以供快速参考。

在主机上运行以下命令:

代码语言:javascript
复制
VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

或在Windows上

代码语言:javascript
复制
VBoxManage.exe setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

其中VM_NAME是虚拟机的名称(例如Ubuntu),SHARE_NAME是共享目录的名称(没有"sf_“前缀)。

这将重新启用以前的符号友好行为。

完成此操作后,我不得不重新启动,然后共享文件夹上的符号链接就开始工作了!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16724543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档