Я думаю, что Вы ищете dpkg-divert
.
Из документов: 11.8 Как я переопределяю файл, установленный пакетом, так, чтобы другая версия могла использоваться вместо этого?.
выборка из документов
Предположим системный администратор или локальный пользователь хотят использовать "локальную для входа в систему" программу, а не программу "вход в систему", обеспеченный пакетом входа в систему Debian.
Не делайте:
Перезапись
/bin/login
сlogin-local
.Система управления пакета не будет знать об этом изменении и просто перезапишет Ваше пользовательское
/bin/login
каждый раз, когдаlogin
(или любой пакет, который обеспечивает/bin/login
) установлен или обновлен.Скорее сделайте
Выполнитесь:
$ sudo dpkg-divert --divert /bin/login.debian /bin/login
для порождения всех дальнейших установок Debian
login
пакет для записи файла/bin/login
кому:/bin/login.debian
вместо этого.Затем выполнитесь:
$ sudo cp login-local /bin/login
перемещать Вашу собственную локально созданную программу в место.
Выполненный
dpkg-divert --list
видеть, какие диверсии в настоящее время активны в Вашей системе.Подробная информация предоставлена в странице руководства
dpkg-divert(8)
.
Я определил бы, какой пакет исходный Постфикс init сценарий имел независимо, и отклоните просто этот файл со своей измененной версией.
И использовать ее:
$text = gc tale.txt
$fs = [System.IO.File]::OpenWrite("tale.txt")
$sw = New-Object System.IO.StreamWriter($fs)
$sw.Write($text.Replace("the",""))
$sw.Dispose()
Источник файла будет выполнять команды из него в текущем контексте оболочки. Таким образом, функции будут доступны в [115568]-родителях[115569].
export[115571] установит атрибут для переменной, который будет применим для текущей оболочки и подоболочки. Не родительская оболочка. Вам нужно определить переменную в контексте оболочки [115572]current[115573].[115092].