我正在为我的最新游戏构建一个 .deb 包,http://sundaycoders.host-ed.net/download.html。
一旦安装了 deb 包,文件位置、菜单项和图标一切都正常。
游戏文件安装到目录中:/usr/games/marball/
一旦运行,程序需要生成 2 个文件(首次启动)(.cfg 和 .sav 文件)但该文件夹似乎没有权限在其中创建文件。
有人能帮解决这个问题吗?我应该在 .deb 包构建过程中添加命令吗?
答案1
在 Unix 中,这些内容应该放入用户的主文件夹 - 例如 $HOME/.marball/game.cfg 等。
用户没有(也不应该)有权限修改 /usr/whatever 中的文件
答案2
/usr/games/marball 是系统范围的位置,这意味着对此处文件的更改将影响所有用户。这就是为什么普通用户运行的程序通常无法在此处创建文件的原因。看起来您要创建的文件是配置和保存的游戏文件。在多用户系统中,您希望能够为每个用户单独保存游戏和配置,因此即使您更改权限以允许这样做,将这些文件存储在系统范围的位置也不合适。
这些文件应存储在用户配置目录中。要获取此目录,您首先应查找环境变量“XDG_CONFIG_HOME”。如果不存在,请使用 ~/.config(您可以从“HOME”环境变量中获取“~”的位置)。在此文件夹中,您的游戏应创建一个“marball”文件夹,并将其用作“marball.cfg”和“Marball.sav”的位置。
您的游戏是跨平台的,因此您只需要在 Linux 上使用此方法。但是,最好将这些文件存储在所有平台上的主文件夹(或等效文件夹)中的某个位置。