diff --git a/src-script/pack-apack-win-linux.js b/src-script/pack-apack-win-linux.js
index 7eaaedc1..35b41431 100644
--- a/src-script/pack-apack-win-linux.js
+++ b/src-script/pack-apack-win-linux.js
@@ -6,13 +6,13 @@ exports.default = async function (context) {
     context.electronPlatformName === 'win32' ||
     context.electronPlatformName === 'linux'
   ) {
-    await scriptUtil.executeCmd({}, 'npx', [
-      'copyfiles',
-      '-V',
-      '-f',
+    await scriptUtil.executeCmd({}, 'install', [
+      '-m466',
+      '-v',
+      '-Dt',
+      context.appOutDir,
       path.resolve(context.outDir, '../apack.json'),
       path.resolve(context.outDir, '../src/assets/zap.png'),
-      context.appOutDir
     ])
     console.log('Files copied successfully.')
   }
diff --git a/src-script/script-util.js b/src-script/script-util.js
index 1897c2b8..ed6bba12 100644
--- a/src-script/script-util.js
+++ b/src-script/script-util.js
@@ -181,11 +181,9 @@ async function rebuildBackendIfNeeded() {
   return scriptUtil
     .executeCmd({}, 'npx', ['tsc', '--build', './tsconfig.json'])
     .then(() =>
-      scriptUtil.executeCmd({}, 'npx', [
-        'copyfiles',
-        './src-electron/**/*.sql',
-        './src-electron/icons/*',
-        './dist/'
+      scriptUtil.executeCmd({}, 'bash', [
+        '-xec',
+        'for i in ./src-electron/**/*.sql ./src-electron/icons/*; do install -m 644 -Dt dist/$(dirname $i) $i; done'
       ])
     )
 }
