Если программа специально не проверяет какие-либо вещи, вы должны иметь возможность делать
# mv /usr/local/MATLAB /disk2/MATLAB
# ln -s /disk2/MATLAB /usr/local
И все должно продолжать работать в обычном режиме.
Действительно, на моих домашних машинах я делаю это для всего / usr / local
(я символически связываю его с / datadisk / local
), поэтому я могу обновить ОС корневого диска без влияет на установленное программное обеспечение!
Мое решение (, так как я запускаю Gentoo, и это действительно удобно ), это попросить менеджера пакетов установить исправление. Этот патч настраивает cp
и install
для использования --reflink=auto по умолчанию, и он более эффективен и универсален, чем взламывать его с помощью оберток :
∞ cat /etc/portage/patches/sys-apps/coreutils/coreutils-reflink-auto.patch
--- a/src/install.c.orig 2021-04-10 15:13:14.698039128 +0300
+++ a/src/install.c 2021-04-10 15:13:24.114292838 +0300
@@ -264,7 +264,7 @@
{
cp_options_default (x);
x->copy_as_regular = true;
- x->reflink_mode = REFLINK_NEVER;
+ x->reflink_mode = REFLINK_AUTO;
x->dereference = DEREF_ALWAYS;
x->unlink_dest_before_opening = true;
x->unlink_dest_after_failed_open = false;
--- a/src/cp.c.orig 2021-04-10 15:12:03.591111323 +0300
+++ a/src/cp.c 2021-04-10 15:12:40.576190820 +0300
@@ -793,7 +793,7 @@
x->move_mode = false;
x->install_mode = false;
x->one_file_system = false;
- x->reflink_mode = REFLINK_NEVER;
+ x->reflink_mode = REFLINK_AUTO;
x->preserve_ownership = false;
x->preserve_links = false;