Після міграції на новий GenAI сервер з портабельними версіями генераторів Forge, ComfyUI та Fooocus ви можете отримати сюрприз при спробі оновленння або встановлення нових функцій будь якого генератора, тобто всього того що використовує Git.
Під час спроби виконати команду git, наприклад клонування, git повертає фатальну помилку, повідомляючи, що ваш репозиторій має сумнівне право власності, і команда git переривається. Текст про помилку може бути різний, але він буде пов'язваний з Working Directory. Як приклад повертається помилка (дивитися в консолі самого генератора), подібна до наведеної нижче:
fatal: detected dubious ownership in repository at '<path to the repository>'
To add an exception for this directory, call:
git config --global --add safe.directory <path to the repository>
або
fatal: unsafe repository ('<path to the repository>' is owned by someone else)
To add an exception for this directory, call:
git config --global --add safe.directory <path to the repository>
Причина
З git 2.35.2+ було внесено зміни, щоб запобігти користувачеві виконувати команди в репозиторії, що належить іншому користувачеві. Це зроблено для усунення загрози безпеці, CVE-2022-24765 , для отримання додаткової інформації див. setup_git_directory та оголошено про вразливість безпеки Git . Зміни в setup_git_directory запобігають викликам виконання команд у сховищі, що належить іншому користувачеві.
Авжеж, якщо це нова інсталяція Windows, то і Ви як користувач (тобто SID) вже новий для локальних репозиторіїв Forge, ComfyUI та Fooocus, навіть якшо вони були портабельні.
Рішення
В системі з одним користувачем змініть власника папки сховища на користувача, який виконує команду git.
Для Windows - один із способів зробити це за допомогою команди takeown :
takeown /f <path to the repository> /r /d y
Для Linux - за допомогою команди chown :
chown -R username:group <path to the repository>
Звичайно вам буде ліньки робити таку комнаду на кожен свій репозиторій, тому відразу переходіть до фіналу мого поста.)
Єдине сховище в багатокористувацькій системі:
Рішенням за замовчуванням для вирішення цієї проблеми було б додати відповідний каталог до списку git safe.directory за допомогою такої команди:
git config --global --add safe.directory <path to repository>
Зазвичай це команда, запропонована git у повідомленні про помилку, щоб додати цей каталог до списку винятків.
Кілька сховищ, глобальні налаштування системи:
Додайте папку до списку safe.directory на рівні системи
git config --system --add safe.directory <path to the repository>
Якщо використовується git > 2.36, існує також символ підстановки, щоб додати оптом всі папки до списку safe.directory :
git config --global --add safe.directory '*' # For the current user and all repositories
git config --system --add safe.directory '*' # For all users and all repositories
Таку команду треба виконати тільки один раз.
До речі, якщо ви користуєтесь RDP-сеансом для роботи з GenAI сервером, то для вас доречніше буде виконати команду саме з параметром --system.
Щасти.
1 comment:
Для впевненності серед free локальних генераторів GenAI треба добре розуміти формати csv, json, yaml, txt та bat-файлів, при чому налаштування можуть бути в кількох форматах одночасно.
Post a Comment
А что вы думаете по этому поводу?