Closed Zacharia2 closed 1 year ago
$HOME/.local/share/wineprefixes/容器名
https://gitlab.archlinux.org/pacman/pacman/raw/master/proto/PKGBUILD.proto
https://wiki.archlinuxcn.org/wiki/%E5%88%9B%E5%BB%BA%E8%BD%AF%E4%BB%B6%E5%8C%85
install .install 脚本的名称。这个值应该和 pkgname 相同。pacman 可以在安装、卸载或升级一个软件包时存储及执行一些特定的脚本。在不同的情况下,脚本包含了下面几个函数,并且在特定时刻执行它们:
pre_install - 安装前运行的脚本。可以传递一个参数:版本号。 post_install - 安装后运行的脚本。可以传递一个参数:版本号。 pre_upgrade - 升级前运行的脚本。可以按以下顺序传递两个参数:新版本号,旧版本号。 post_upgrade - 升级后运行的脚本。可以按以下顺序传递两个参数:新版本号,旧版本号。 pre_remove - 卸载前运行的脚本,可以传递一个参数:版本号。 post_remove - 卸载后运行的脚本,可以传递一个参数:版本号。 每一个函数都是在 pacman 安装目录下通过 chroot 运行。参见这个帖子.
提示: 一个 .install 文件的模板(原型)可以在/usr/share/pacman/proto.install 这里找到。 Pacman 钩子也提供相似的功能。 注意: 脚本不要以 exit 结束,否则包含的函数无法被执行。
changelog 软件包的更新日志的文件名。
这样的话(wine改成winetricks依赖项),仅需要将容器与软件放到预制环境中的预设位置就可以了。在设置一下安装时与删除时的动作添加额外的快捷使用方式。
只是依赖的安装时间可能会过长,不过可以试一下。
但也可以使用一个好的源仓库解决,比如国内的华为源
安装后执行的脚本:post_install
卸载后执行的脚本:post_remove
wine-6.0.3 (Ubuntu 6.0.3~repack-1),目前只能使用这个版本了,winehq官网最新8.0版安装参数太复杂。
git clone --recursive https://github.com/Zacharia2/SuperMemo18-ON-Wine.git
/home/whitefall/桌面/SuperMemo18-ON-Wine/SM18.05-WINE-Vessel/drive_c/windows/notepad.exe
env WINEARCH=win32 WINEPREFIX="/home/whitefall/桌面/SuperMemo18-ON-Wine/SM18.05-WINE-Vessel" wine notepad.exe
本地家目录下的路径针对不同用户都不好定义。。。。。
local prefix=$pkgdir/$HOME/.local/share/wineprefixes/
对于仅一次性构建并安装者可以这样做,对于管理者发包,emmm。。。
可以将仓库克隆下来在执行构建命令,本地打包,最终用户安装的方式
所以一般配置/数据文件和软件本体是分开的。
配置放 ~/.config/$pkgname ,用户各自用各自的。owner 是 USER 数据放 /opt/$pkgname/ 之类的地方 ,所有用户都是统一的。owner 是 root
但是这软件是数据本体放一起的。(应该可以改,我不清楚)。
所以我用了一些 trick 把本体塞 $HOME/ 里面了。这样非 root 可读可写,权限也对。
install -Dm755 binary -t "${pkgdir}/opt/apps/${pkgname}/"
打包安装阶段时不可以,但软件启动后就可以了呀。
所以可以额外写个脚本,用于第一次使用的初始化。
SUDO_USER=whitefall,如果是使用这个的话。
LOGNAME=whitefall
su - user -c "systemctl --user start chrome-setup.service"
需要判断是不是sudo,那就需要判断有无SUDO_USER变量。
mkdir -p "/home/"${LOGNAME}"/桌面/SuperMemo卡组与资料库/"
未完成的事情: 桌面/SuperMemo卡组与资料库/ 的创建于删除脚本。。。。
有个初级问题,为啥C既有卡组也有资料库,D和E只有卡组目录呢
因为SuperMemo装在wine的c盘,你也可以自己设置 @heisaari
仅知超级用户需要知道普通用户的名称才可以。
那可以写一个startup脚本,绑定快捷方式。脚本中仅执行一次初始化任务。
sudo -u $(who | grep "(:0)" | awk '{print $1}') sh /path/to/script.sh
其中,/path/to/script.sh
是指要执行的脚本的路径和文件名。
尝试使用winetricks依赖代替wine.appimage