LINUX.ORG.RU

Структура каталогов в Linux.


0

2

Мне нужно, например, переименовать каталог /etc в /settings, а каталог /usr/local вовсе убрать и раскидать его содержимое в другие. В какую часть системы мне нужно залезть, чтобы это сделать? Что вообще отвечает за стандарт FHS, за эти пути - ядро, какой-то пакет или ещё что?

Мне нужно, например, переименовать каталог /etc в /settings, а каталог /usr/local вовсе убрать и раскидать его содержимое в другие.

Тогда тебе нужно собирать LFS попутно внося изменения во всё ПО которое ты будешь ставить патча все пути на те которые нужны именно тебе.

init_6 ★★★★★
()

Эти пути очень много где захардкодены.

И да, Денис, перелогиньтесь.

anonymous
()

> Мне нужно, например, переименовать каталог /etc в /settings, а каталог /usr/local вовсе убрать и раскидать его содержимое в другие.

Зачем такие извращения? Чего добиваешься?

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от init_6

Нет, не то. Мне, скорее, нужен некий транслятор, который переводил бы нужные мне пути в традиционные и наоборот. Чтобы софт ничего даже не подозревал.

Murcielago
() автор топика
Ответ на: комментарий от LongLiveUbuntu

> Дата регистрации: 30.04.2011

Чего добиваешься?


Не понятно ещё? (:

MihailP ★★
()
Ответ на: комментарий от Murcielago

> Мне, скорее, нужен некий транслятор, который переводил бы нужные мне пути в традиционные и наоборот. Чтобы софт ничего даже не подозревал.

Симлинки. Плюс патч на ядро из GoboLinux, позволяющий скрыть часть путей в листингах каталогов. Профит.

Подозреваю, что ты и изобретаешь GoboLinux.

geekless ★★
()
Ответ на: комментарий от geekless

Я тут сейчас подумал, симлинками не выкрутиться. Мне нужно, чтобы пакеты ставились каждый в свой каталог, для этого придётся писать что-то, что отслеживало бы установку пакета и, вместо раскидывания файлов по каталогам FHS, пихало бы их в означенное мной место. Или проще менеджер пакетов переделать?

Подозреваю, что ты и изобретаешь GoboLinux.

Я не могу без слёз смотреть на FHS. Это какое-то издевательство над здравым смыслом.

Murcielago
() автор топика
Ответ на: комментарий от Murcielago

> Я тут сейчас подумал, симлинками не выкрутиться. Мне нужно, чтобы пакеты ставились каждый в свой каталог, для этого придётся писать что-то, что отслеживало бы установку пакета и, вместо раскидывания файлов по каталогам FHS, пихало бы их в означенное мной место.

Да ничуть. Ложишь распакованные пакеты куда-нибудь в /var/packages, а потом вместо копирования в FHS, кидаешь симлинки (ну кроме файлов для /var и /etc — их нужно ставить честно).

Или проще менеджер пакетов переделать?


Именно это и нужно сделать.

Я не могу без слёз смотреть на FHS. Это какое-то издевательство над здравым смыслом.


С FHS всё отлично. Просто нужно каплю виртуализации процесса установки, чтобы удобнее рулить пакетами.

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

Вот немного того, что я думаю на сей счет: http://www.linux.org.ru/forum/development/5957670

geekless ★★
()

Это большой гимор. Но в принципе идея имеет право на существование. Ты не первый и не последний кто изобретает что-то своё-велосипедное, и это в принципе очень хорошо.

TGZ ★★★★
()
Ответ на: комментарий от geekless

>Ложишь распакованные пакеты куда-нибудь в /var/packages, а потом вместо копирования в FHS, кидаешь симлинки (ну кроме файлов для /var и /etc — их нужно ставить честно)

Да, похоже на то.

Просто нужно каплю виртуализации процесса установки, чтобы удобнее рулить пакетами

Я вообще намереваюсь разделить всё на уровни типа core, system, extra (как в арче, вроде). Захотел чистую систему - перешёл в консоль и удалил каталог extra. Или вообще - разнести extra по домашним каталогам, чтобы у каждого юзера был свой набор софта.

В Gobo пытаются это делать, но на мой взгляд, делают не правильно

Да, мне их реализация тоже не особо понравилась.

Murcielago
() автор топика
Ответ на: комментарий от Murcielago

> Захотел чистую систему - перешёл в консоль и удалил каталог extra.

От этого толку мало, развивай идею дальше. :) Почитай по ссылке, о чем я писал в том треде. Пакеты отдельно, «установки» пакетов отдельно. (Как их назвать? «Домены»?) Немного инфраструктуры для автоматизации по управлению им и переключению. В одном терминале у тебя может быть «дефотная» система, в другом — с набором пакетов, нужных для разработки (которые нельзя поставить в дефолтную из-за конфликтов версий), в третьей — минимальная система для тестов результата сборок.

geekless ★★
()
Ответ на: комментарий от geekless

Ага, ага, я тоже об этом думаю. Мне вообще не нравится идея универсальной системы, захламлённой и монструозной. Куда лучше использовать специализированные системы.

Murcielago
() автор топика
Ответ на: комментарий от AITap

> NixOS

Прочитал краткое описание. Это гениально. Времени сейчас нет, но на следующей неделе обязательно надо будет подробно ознакомиться в этим.

geekless ★★
()
Ответ на: комментарий от Murcielago

По идее, чрута достаточно. Конечно, не всё при помощи него перекрывается, например, сетевые интерфейсы глобальны. Но и фиг с ними. В общем, как обычно, проблема возникает, когда в архитектуре юникс находятся исключения из файлового подхода к управлению ресурсами.

geekless ★★
()
Ответ на: комментарий от geekless

>>NixOS

Это гениально.

Это чушь собачья. Раньше нужно было просто приглядывать за зависимосями и конфигами пакетов, а теперь нужно будет втыкать в новую логическую надструктуру на множестве пакетов, которая кроетcя за внешней простотой кнопочки с надписью «Зае^WПересоберись».

mclaudt
()

опять фрактал зобана просит...

pekmop1024 ★★★★★
()
Ответ на: комментарий от Murcielago

>>Очень достойное занятие.

Ну, вполне достойное заявленой задачи охвата подробным пониманием всей системы.

mclaudt
()

>В какую часть системы мне нужно залезть, чтобы это сделать?

В исходный код сисвызовова open, или сделать LD_PRELOAD, подменяющий каталог /etc нужным тебе.

elverion
()

Денис перелогинься.

anonymous
()

>мне нужно, например, переименовать каталог /etc в /settings

ты можешь невозбранно поставить симлинк /settings на /etc. Но если хочешь идти до конца, придется править inittab и все программы, в которых захардокжено использование /etc

/usr/local по дефолту ни для чего не используется, без него жить можно

annulen ★★★★★
()
Ответ на: комментарий от Zhbert

>А все ПО, где эти пцти вбиты напрочь без возможности изменения, тоже будешь переписывать?

ИМХО, ПО с хардкодом путей не нужно

annulen ★★★★★
()
Ответ на: комментарий от mclaudt

> Это чушь собачья. Раньше нужно было просто приглядывать за зависимосями и конфигами пакетов, а теперь нужно будет втыкать в новую логическую надструктуру на множестве пакетов, которая кроетcя за внешней простотой кнопочки с надписью «Зае^WПересоберись».

Лол, а гента что ли пересобирается не вводом аналога команды «Зае^WПересоберись»? Любой пакетный менеджер по сути представляет собой «логическую надструктуру на множестве пакетов». Если вас это не устраивает, LFS к вашим услугам.

geekless ★★
()
Ответ на: комментарий от geekless

Ну так насколько я понял, это надстройка уже к самому пакетному менеджеру.

mclaudt
()

«История успеха»:

* Значит, скачал я этот nixos, прожег, запустил.
* Kernel panic. Reboot.
* Не видит сеть, т.к. нет pppoe. Невозможно собрать пакеты.
* Запускаю на другом компе, куда интернет раздаётся по локалке.
* Установка. Reboot.
* Missing operating system. Reboot.
* Эта тварь использует grub2, а он не умеет ставиться на partition. Соответственно, и не поставился. Ставлю основным загрузчиком винта. Reboot.
* Kernel panic. Reboot.
* useradd -m vadim. useradd: cannot lock /etc/passwd; try again later.
* rm /etc/passwd.lock /etc/shadow.lock /etc/group.lock ; useradd -m vadim

Но это всё фигня. Главный фейл системы заключается в:
$ ls /bin
sh
$ ls /usr
ls: cannot access /usr: no such file or directory

Все бинарники лежат по уникальным путям определяемым на основе хэша от опций сборки пакета. В отдельных каталогах хранятся симлинки на них, формирующие текущий профиль. В PATH засунуты пути к таким каталогам. Соответственно, можно либо вызывать бинарник через PATH, либо вкомпиливать полные пути в пакет. Скрипты, делающие #!/bin/programname идут лесом. (ибо даже /bin/usr/env по дефолту отсутствует) Надо будет посмотреть, как тут работают рубипитонопрограммы и прочие скрипты. Скорее всего, патчится исходник при сборке пакета, чтобы подставить полный путь к интерпретатору.

Второй фейл — grub2, upstart и прочий взрывающий мозг ужас по дефолту.

Но идеи в пакетный менеджер заложены хорошие. Если допилить нормальную совместимость структуры ФС с FHS и собрать простой и понятный арч-подобный дистрибутив без всех этих апстартов, будет вполне юзабельно.

Из достоинств: source-based. При этом пакетник сразу делался с рассчетом на то, что если бинарный пакет с аналогичными флагами сборки уже доступен где-либо, то скачивать его в готовом виде. Насколько удобно рулить версиями и флагами сборки, еще не смотрел. Если хотя бы вполовину так же удобно, как в генте, то этот пакетный менеджер точно имеет право на существование.

geekless ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.