Skip to content

Ceredira Filesystem Hierarchy Standard for portable working folder in Windows system

License

Notifications You must be signed in to change notification settings

Ceredira/CerediraFHS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CerediraFHS

Для технической поддержки просьба обращаться в Telegram канал CerediraAutomation.

Ошибки и предложения по улучшению можно публиковать на странице проблем.

Описание

CerediraFHS - это стандарт структуры хранения каталогов и файлов внутри каталога операционной системы (ОС) Windows.

Данный стандарт будет удобен для IT-специалистов при выполнении задач по разработке, тестированию и администрированию программного обеспечения на небольших проектах.

CerediraFHS разработан для решения таких проблем, как:

  • Пользовательские данные в системе хранятся на Рабочем столе, в каталоге Загрузки, в каталоге пользователя, в каталоге Документы, в корне диска C:\ и в каталогах на других дисках. Если не уделять должное внимание структуризации файлов на устройстве, то рабочие файлы по разным проектам, личные файлы и временные файлы лежат в пользовательских каталогах в беспорядке.
  • Из-за большого количество доступных пользователю каталогов, сложно настроить резервное копирование данных. А в таких каталогах, как каталог пользователя, содержаться каталоги AppData и другие, за счет чего размер "важных" данных может исчисляться гигабайтами.
  • Отсутствие возможности переноса программного обеспечения (ПО) между устройствами, так как запись ПО в стандартный каталог C:\Program Files\ без прав администратора недоступна, а запись в другой каталог приводит к актуализации путей в связном ПО.
  • Каждое программное обеспечение по-разному хранит на устройстве свои конфигурационные файлы, из-за чего делать быстрый переход между устройствами является проблематичным.
  • При необходимости установки разных версий ПО может затронуть другое настроенное ПО.

При использовании CerediraFHS можно получить следующие плюсы:

  • Централизация всего важного на устройстве в единый каталог - отсутствие беспорядка
    • Простота переноса между устройствами - архивируется и копируется 1 каталог
      • Возможность разделить корневой каталог на отдельные части для дистрибьюции - уменьшение размера распространяемых частей
    • Простота резервного копирования - из-за жесткой структуры, легко настроить удобные правила
    • Простор для экспериментов - можно скопировать корневой каталог целиком, и модифицировать копию
    • Для каждого дистрибутива свои стабилизированные версии ПО
  • Возможность писать скрипты и руководства, опираясь на жесткую структуру каталогов и файлов
  • При установке ПО в соответствии с предлагаемым стандартом, появляется возможность переносимости ПО
  • Для пользователей Linux - знакомая структура каталогов и файлов
  • При оказании удаленной технической помощи - удобство для эксперта оперировать в знакомом окружении
  • При использовании данного репозитория, возможность ведения истории Git - контроль версий рабочего каталога. Все каталоги и файлы, которые необходимо контролировать, нужно вручную добавить в правила .gitignore в корне данного репозитория. По умолчанию, кроме самой структуры и файлов README.md - ничего не подвергается контролю версий.

При разработке решения за основу была взята общая логика из стандарта UNIX FHS и модифицирована для использования в произвольном каталоге ОС Windows.

Структура каталогов CerediraFHS

В распакованном виде выглядит как на изображении ниже: CerediraFHSMain.png

В CerediraFHS все файлы и каталоги находятся внутри корневого каталога, которым является любой каталог в ОС Windows. Для простоты, этот каталог лучше размещать в корне дисков, и не добавлять пробелы в имя каталога. В целом, такой каталог можно назвать дистрибутивом.

Каталог Описание
C:\CerediraFHS Корневой каталог, содержащий всю файловую иерархию.
bin Основные утилиты, необходимые в рамках этого дистрибутива
etc Каталог конфигурационных файлов для утилит
etc\install Каталог скриптов, для развертывания данного дистрибутива
etc\ssl Каталог для сертификатов, необходимых при работе с данным дистрибутивом
home Каталог для важных пользовательских файлов
lib Каталог для основных библиотек, необходимых для работы утилит из данного дистрибутива
man Каталог для инструкций данного дистрибутива
opt Каталог для возможности добавления пользователем личных утилит
tmp Каталог для неважных временных файлов
var Каталог для изменяемых файлов используемых утилит
var\log Каталог для файлов логов
MDData Каталог для хранения мультимедиа файлов для справок README.md

Описание файлов

CerediraFHS                            - корневой каталог проекта
│   .gitignore                         - файл правил игнорирования для Git
│   LICENSE                            - файл с описанием лицензии
│   README.md                          - файл подробного описания проекта
│
├───.git                               - каталог системы контроля версий Git
│
├───bin
│       README.md                      - файл подробного описания назначения каталога
│
├───etc
│   │   README.md                      - файл подробного описания назначения каталога
│   │
│   ├───install
│   │   │   README.md
│   │   │
│   │   └───CerediraFHS                - каталог с именем компонента
│   │       │   CreateContextMenu.bat  - скрипт установки основных утилит в контекстное меню проводника Windows
│   │       │   DeleteComponent.bat    - скрипт удаления всех файлов и каталогов данного компонента
│   │       │   DeleteContextMenu.bat  - скрипт удаления контекстношго меню проводника Windows для данного компонента
│   │       │
│   │       └───version                - каталог с версиями данного компонента
│   │               1.0.0              - файл-маркер версии компонента
│   │
│   └───ssl
│           README.md                  - файл подробного описания назначения каталога
│
├───home
│       README.md                      - файл подробного описания назначения каталога
│
├───lib
│       README.md                      - файл подробного описания назначения каталога
│
├───man
│       README.md                      - файл подробного описания назначения каталога
│
├───opt
│       README.md                      - файл подробного описания назначения каталога
│
├───tmp
│       README.md                      - файл подробного описания назначения каталога
│
└───var
    │   README.md                      - файл подробного описания назначения каталога
    │
    └───log
            README.md                  - файл подробного описания назначения каталога

Советы по использованию

Для каждого проекта желательно использовать отдельный каталог со своей структурой и своим набором утилит. Даже если это будет вести к дублированию утилит предназначенных для одних и тех же задач. Текстовые редакторы, утилиты для редактирования файлов и т.п. будут отдельно для каждого рабочего проекта (и отдельно для личного использования).

Ограничения использования

  • Не любые утилиты можно заставить работать с такой структурой каталогов. Это необходимо явно описывать в README.md файлах, и учитывать при создании резервных копий. Как вариант решения проблемы, скриптами переносить все важные каталоги из каталога bin, в каталог data перед архивацией и распространением.
  • Допустим, есть версия дистрибутива 1.0, новая версия с минорными исправлениями 1.0.1 распаковывается поверх текущей с заменой всех файлов, но файлы, которые например необходимо было удалить из версии 1.0 для корректной работы версии 1.0.1, необходимо будет удалять скриптами или вручную, и просить сделать это пользователя. На данный момент нет удобного механизма решения этой проблемы.

Примеры использования

Проект CerediraAutomation построен с использованием стандарта CerediraFHS, он состоит из множества компонентов, каждый из которых содержит необходимые для своей работы каталоги. Необходимые компоненты распаковываются в корень каталога с CerediraFHS и получается уникальный для дальнейшей работы дистрибутив.

About

Ceredira Filesystem Hierarchy Standard for portable working folder in Windows system

Topics

Resources

License

Stars

Watchers

Forks