Skip to content

Latest commit

 

History

History
135 lines (90 loc) · 7.21 KB

File metadata and controls

135 lines (90 loc) · 7.21 KB

English

Первые шаги: Что делать как только зашли на новый сервер?

Никита Ваулин, MedUni Wien & Bioinformatics institute
[email protected]

Мне приходилось повторять это столько раз, что пусть оно будет тут в короткой и понятной форме. Любые замечания и советы привествуются в PR и в телеге!

  1. Аутентификация
    1. Смена пароля
    2. Настройка SSH-ключей
  2. Виртуальные окружения
    1. Установка mamba
    2. Создание первого окружения
  3. Ядра Jupyter
    1. Создание ядра Jupyter
  4. Заключение

➡️ Это можно просто copy-paste-run
⏯️ Это надо copy-paste-EDIT-run
✔️ Это для самопроверки

1 Аутентификация

1.1 Смена пароля

Вам создали юзера с паролем по умолчанию? Пароль определенно стоит поменять!

➡️ Просто запускаем:

passwd

Затем следуйте интерактивному меню (вводим старый пароль, вводим новый пароль, вводим новый пароль еще раз)

✔️ Закройте терминал и откройте его снова, убедитесь, что вы можете войти на сервер с новым паролем

1.2. Настройка SSH-ключей

Если вы собираетесь часто заходить по SSH (из терминала, или из VSCode и т.д.), лучше создать SSH-ключи. Мне нравятся инструкции на GitHub. Вкратце:

➡️ На вашем ПК генерируем SSH-ключ

ssh-keygen

(Опции над которыми стоит подумать: -t ed25519, -f ~/.ssh/<your_key_name>)

Затем следуйте интерактивному меню (просто нажимайте Enter, чтобы согласиться со всем, если у вас нет собственного плана)

⏯️ Добавляем ключ в агент:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/<your_key_name>

Затем копируем всё содержимое публичной части вашего ключа (~/.ssh/<your_key_name>.pub), заходим на сервер с паролем и добавляем это содержимое в файл ~/.ssh/authorized_keys на сервере (надо создать, если отсутствует). Добавить означает добавить как новую строку, в случае если файл уже есть и не пустой.

⏯️ Если что, это все можно сделать в одну команду:

cat ~/.ssh/<your_key_name>.pub | ssh <username>@<remote_host> "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Если вы более продвинутый пользователь - обратите внимание на ssh-config.

✔️ Закройте терминал и откройте его снова, убедитесь, что вы можете войти на сервер без пароля

2. Виртуальные окружения

2.1. Устанавливаем mamba

Можно также поставить conda, но я больше предпочитаю мамбу. Взято с Fresh install section.

➡️ По сути, скачиваем установочный скрипт и запускаем его (просто скопируйте команды)

wget "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh

Нажимайте Enter и вводите yes везде где что-то спрашивают.

✔️ Закройте терминал и откройте его снова, убедитесь, что вы видите префикс (base) в командной строке

2.2. Создаем первое окружение

Постарайтесь ничего не устанавливать в свое базовое окружение.

⏯️ Запускаем:

mamba create -n <your_env_name>

Можно также добавить библиотеки при необходимости:

mamba create -n <your_env_name> python=3.11 scanpy[leiden]

Теперь активируем окружение

mamba activate <your_env_name>

✔️ Теперь вы видите имя вашего окружения как префикс в командной строке

3. Jupiter kernels

Этот раздел актуален, если вы собираетесь использовать Jupyter Notebooks. Я предполагаю, что у вас есть система Jupyter Hub, в которую вы можете войти через браузер. В противном случае рассмотрите установку jupyter с нуля.

3.1 Создаем ядра Jupyter

Теперь у вас есть окружение mamba с необходимыми библиотеками. Давайте создадим ядро jupyter из этого окружения.

⏯️ Ставим нужную либу и создаем ядро:

# For Python (run in Terminal)
pip install ipykernel
python -m ipykernel install --user --name <your_env_name>
# For R (run in R console)
install.packages('IRkernel')
IRkernel::installspec(user=TRUE, name='<your_env_name>')

✔️ Обновите браузер, теперь вы увидите опцию выбора нового ядра в лаунчере.

Любые новые библиотеки в вашем окружении будут автоматически доступны в этом ядре!

4. Заключение

Вот и все, мы сделали некоторые начальные настройки сервера. Вы прекрасны и удачи в ваших исследованиях!