Рейтинг:1

Как синхронизировать домашний каталог Ubuntu WSL и MINGW для меня

флаг in

Так что я привык использовать Git для Windows mingw и настраивать там ключи ssh.

Недавно принял Ubuntu 18 на WSL (подсистема Windows для Linux) и понял, что домашняя папка в Ubuntu отличается от домашней папки для MinGW.

MinGW использует мою настоящую домашнюю папку Windows (обычно C:\Users\eric), а папка ssh находится в C:\Users\eric.ssh.

Ubuntu WSL использует другую папку для /home/eric, и мой .ssh в Ubuntu явно не та же самая папка.

Зная, что процессы Windows, редактирующие домашнюю папку для файлов, представленных в WSL, в настоящее время не поддерживаются (проблемы синхронизации метаданных VolFS, погуглите), однако было бы неплохо хотя бы синхронизировать мою папку .ssh.

Каким будет правильный способ сделать это?

Я не вижу, как MinGW монтирует домашнюю папку, и я не вижу, как переместить ссылку на домашнюю папку Ubuntu (или, по крайней мере, папку .ssh) в C:\Users\eric.ssh

Рейтинг:1
флаг vn

Зная, что процессы Windows, редактирующие домашнюю папку для файлов, представленных в WSL, сейчас не поддерживаются (проблемы синхронизации метаданных VolFS, погуглите)

Если вы имеете в виду Эта проблема или его производным, то обратите внимание, что проблема была решена давно (как указано в этом сообщении в блоге Microsoft) с созданием метода доступа DrvFs для WSL. Из Git Bash вы должны использовать:

компакт-диск //wsl\$/Ubuntu-18.04
# Замените правильное имя дистрибутива, если необходимо

Я определенно не рекомендую «перемещать» какую-либо домашнюю папку (т.е. пытаться использовать любую системную папку в качестве домашней) лично. Скорее всего, вы столкнетесь с проблемами прав доступа/владения, разными UID/GID и т. д. «Синхронизация» двух вместо этого была бы гораздо лучшей стратегией, ИМХО.

Однако этот вопрос возникал в прошлом, и общая рекомендация состоит в том, чтобы использовать репозиторий git для хранения/синхронизации ваших общих файлов конфигурации между «хостами» (в данном случае WSL/Ubuntu и Git Bash). Есть ряд утилит, призванных упростить эту задачу, с хорошим списком здесь. Я лично не использовал ни один из них, но я читал хорошие отзывы о GNU Stow.

Примечание. Судя по вашему профилю, у вас гораздо больше опыта в git, чем у меня, но мне кажется, что (при желании) вы можете создать хук, чтобы всякий раз, когда вы нажимали изменение в репозиторий конфигурации на Git Bash стороны, он автоматически запустит что-то вроде:

wsl -e sh -c "git --git-dir=$HOME/.dotfiles вытащить
Это использует

wsl в Windows, чтобы вызвать команду в вашем экземпляре Ubuntu. Однако вам понадобится какой-то способ запускать хук только тогда, когда вы совершаете коммит из Git Bash. Или вы можете написать сценарий так, чтобы он вызывалмерзавец в Git Bash, если коммит был сделан в WSL/Ubuntu, и наоборот.Или это может быть излишним/чрезмерной архитектурой ;-)

Перейти скачать

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.