Skip to content

Latest commit

 

History

History
121 lines (82 loc) · 10.1 KB

File metadata and controls

121 lines (82 loc) · 10.1 KB

Построение

Программа предназначена для работы под Linux

0. Установить .NET 7.0

0.1. Вариант без установки .NET 7.0

Для сборки, в которую уже включён dotnet установка dotnet не требуется. Однако, требуются ручные операции.

Перейдите на страницу https://github.com/VinKekFish/VinKekFish/releases и выберите самый новый релиз. Кликните на "Assets" для развёртывания этого пункта и скачайте файлы vkf-dotnet7.7z и build.manual.zip .

0.2. Вариант с установкой .NET 7.0

Для Ubuntu Linux и Linux Mint необходимо выполнить в командной строке команду

sudo apt install -y dotnet7

для иных ОС необходимо смотреть https://dotnet.microsoft.com/download

При возникновении проблем с libfuse программа будет, скорее всего, не работоспособна. Если нужно, попробуйте отключить её (дисковое шифрование и символьное устройство '/dev/vkf/crandom' перестанут работать):

    Попробуйте закомментировать символом "#" строку `character device in /dev` и строку под ней в файле настроек.
    Файл настроек располагается в `./Crypto/VinKekFish/src/main/5 main-crypto/exe/service/options_files/service.options`.
    После этого нужно сребилдить проект заново и запустить скрипт установки.
    или просто вручную заменить файл настроек в `/opt/VinKekFish/options/` и, без ребилда, перезапустить сервис vkf [`sudo systemctl restart vkf`].

Если вы хотите сами сбилдить проект, то перейдите к следующему пункту (пукнт 1).

Если вы хотите установить бинарный файл (это проще), то:

  • Перейдите на страницу https://github.com/VinKekFish/VinKekFish/releases и выберите самый новый релиз.
  • Кликните на "Assets" для развёртывания этого пункта и скачайте файл vkf-dotnet7.7z .
  • Распакуйте vkf-dotnet7.7z в любую папку, из которой возможен запуск.
  • Перейдите к пункту "4. Установка программы".

1. Извлечь вспомогательный репозиторий

mkdir Директория_где_вы_хотите_поместить_проекты
cd Директория_где_вы_хотите_поместить_проекты

mkdir -p ./Compiler
cd Compiler
git clone https://github.com/VinCryptoOS/tree-lang-main

cd ..

mkdir -p ./Crypto
cd Crypto
git clone https://github.com/VinKekFish/VinKekFish

2. Вызвать один из сценариев билда

Перейти в директорию VinKekFish cd VinKekFish

Кроме dotnet для блида нужен пакет makeself. На основанных на debian дистрибутивах он устанавливается командой apt install makeself.

Полностью перестроить решение bash ./b/rebuild.sh

Или быстро перестроить решение (если решение было построено) bash ./b/fbuild.sh

В случае успешного перестроения последняя строчка консоли будет начинаться с "Builder successfully ended" При построении тесты запускаются автоматически. При успешном билде, обычно, не должно быть проблем с сообщениями о том, что тесты прошли плохо. Однако, успешный билд иногда может пройти с плохими тестами на производительность (читайте сообщения тестов).

3. Исполняемые файлы проекта

Исполняемые файлы проекта билдятся в директорию ./Crypto/VinKekFish/build (после выполнения пункта 2 мы уже находимся в ./Crypto/VinKekFish и оттуда запускаем билд). В том числе, ./Crypto/VinKekFish/build/arcs должен содержать архив с полным дистрибутивом программы.

Если установлен флаг BuildDotnetIndependenceVersionFlag (./Crypto/VinKekFish/src/builder/builder/Program.cs), то билд также будет собран в ./Crypto/VinKekFish/build.manual/ для независимой от .NET версии для Linux.

4. Установка программы

Установка из самораспаковывающегося архива

  • Войдите в консоль под root.
  • Текущая директория не важна, так как скрипт будет распаковываться в поддиректорию в /tmp.
  • Директория /tmp не должна быть смонтирована как noexec. Если вы не понимаете, о чём это, скорее всего, у вас всё в порядке. Иначе появится ошибка по типу: "./exe/install.sh: Permission denied".
  • Запустите vkf-dotnet7.sh (если под Linux установлен пакет dotnet7) или vkf-linux.sh на чистом Linux без dotnet7.
  • При предложении поменять настройки при установке, поменяйте настройки в /opt/VinKekFish/options/service.options (как предлагается в скрипте, для задержки нажмите Enter). В том числе, указанные в пункте "service.options". Если не нужно менять настройки, нажмите Enter два раза.

Установка из обычного архива

  • Распакуйте архив, если он ещё не распакован, в какую-либо временную директорию.
  • Войдите в консоль root.
  • Войдите с помощью команды cd в директорию, где вы распаковали архив.
  • После этого скрипт install.sh нужно запустить из-под пользователя root. Установка происходит в папку /opt/VinKekFish. В директорию /usr/local/bin копируется ссылка /usr/local/bin/vkf (эта директория, вероятно, в path и программу можно будет вызывать без указания пути). Скрипт зарегистрирует службу vkf.service, которая будет дополнительно собирать энтропию.
  • Во время установки измените файл service.options, как указано в пункте "service.options" ниже.

service.options

Рекомендуемые изменения в файле service.options.

  • закомментируйте две команды ping (если не хотите сетевой активности) или измените адреса сетевой активности
  • измените путь "/media/veracrypt8/tmp/entropy" на ваш путь к шифрованному постоянному файлу энтропии (либо просто проигнорируйте этот блок, либо отключите этот блок, изменив слово "file" в заголовке блока на "none"). Это путь к ключевому файлу, который может быть дополнительно зашифрован и/или записан на внешнем носителе, чтобы служба vkf могла рандомизировать выдачу, учитывая этот файл. Этот файл может быть подключён уже после запуска службы. Так как сервис vkf запущен из-под root, то и файл должен иметь разрешение на чтения только для root (чтобы потенциальное вредоносное ПО не имело к нему доступа).

Если вы меняли файл service.options после установки, то выполните команду systemctl restart vkf.service для перезапуска сервиса vkf (команда выполняется из-под root). Если файл service.options был изменён в процессе установки, то этого делать не нужно. Прочитать лог сервиса можно командой journalctl -feu vkf (выход клавишами "ctrl+C").

5. Справка

Файлы справки:

  • [src/main/5 main-crypto/exe/auto/enc.md](Шифрование файлов 4096 битов симметричного шифрования)
  • [src/main/5 main-crypto/exe/auto/disk.md](Шифрование дисков 512 битов)

Изменение состава проектов

В проекте нет решения, строительство осуществляется программой с исходниками src/builder/builder/ и вызовом dotnet на каждый проект в отдельности

При появлении нового проекта

  1. Внести его билд в файл src/builder/builder/Build-projects.cs
  2. Внести очистку директории bin этого проекта в b/rebuild.sh (и, если нужно, dotnet clean)