Действительно ли возможно содержать приложения Linux в единственном файле или папке?

Было бы трудно преобразовать жесткие ссылки на символьные ссылки. В случае жесткой ссылки существует блок данных в файловой системе, которая имеет две или больше записи файла, указывающие на него. Нет никакого "источника" и "места назначения"; это - буквально один файл с несколькими эквивалентными именами. Можно использовать GNU, находят для идентификации их этот путь:

sauer@zipper:~$ find . -type f -links +1 -printf "%i: %p (%n)\n"
609: ./link1 (2)
609: ./link2 (2)

После того как у Вас есть все файлы с тем же inode, необходимо было бы выбрать, чтобы быть "реальным" файлом и затем просто заменить все другие с символьными ссылками на основной файл. Вероятно, способ сделать, который должен был бы использовать это:

sauer@zipper:~$ find . -type f -links +1 -printf "%i %p\n" | sort -nk1
609 ./link1
609 ./link2

И затем имейте фигуру сценария, как выбрать одно из значений с тем же числом, чтобы иметь все, что другие связывают с ним. Возможно, первый становится целью, и больше с тем же inode symlinked к нему. Вот один действительно простой, непротестированный пример сценария оболочки

#!/bin/sh
prev=""
target=""
find /tmp -type f -links +1 -printf "%i %p\n" | sort -nk1 \
| while read inode file
do
  if [[ $inode != $prev ]]
  then
     target="$file"
     prev=$inode
  else
    ln -sf "$target" "$file"
  fi
done

Существуют потенциальные проблемы в этом, ссылки из различных каталогов могут быть созданы с недопустимой целью, если путь в находке (/tmp в этом примере) не является полным. Но общее представление должно быть прекрасным.

3
08.12.2018, 02:18
2 ответа

Конечно, это именно то, что такое «пакет»! Подумайте об этом как в install.exe в Windows. Вы загружаете Foo.deb или любой файл, и это содержит все, что вам нужно, чтобы установить его.

Да, процесс установки скопирует различные файлы в различные местоположения (так, как правило, в Windows также, кстати, не все в папке файлов / foo ), но вы понимаете Не нужно знать об этом. Вы просто добавляете / удалите программы, используя инструменты, предоставленные вашим распределением Linux (графические инструменты в большинстве случаев, если это то, что вам нравится), и они имеют дело с поиском различных файлов в своих различных каталогах.

Итак, если вы что-то винт, и не хотите загрузить (хотя большинство пакетов довольно маленькие и не забирают много времени, чтобы скачать даже с медленным соединением), вы просто повторно установите .deb файл. Это также тривиально (очень в отличие от Windows), чтобы получить полный список всех файлов, связанных с определенной программой / пакетом и удалить их.

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

2
27.01.2020, 21:27

, поскольку вы используете Minux Mint, и предположительно Linux Mint Mint Debian Edition, я бы не сделал этого, так как следующий крупный релиз полностью разрывается с вашей текущей установкой. Я имею в виду, это будет основано на Debian Jessie вместо того, чтобы удивиться.

Я также предполагаю, что вы хотите просто вырезать или скопировать все вручную где-то еще (например, в Windows), а затем переместите их, как только вы выполняете работу.

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

Если вы хотите проверить все, и избегайте повторно скачать все, если что-то пойдет не так, просто используйте виртуальную машину и резервную копию виртуального диска для «Реверсив изменений»

Я также заинтересован в этом, но Распределение Linux - это синоним много библиотек Inter-зависимости.

0
27.01.2020, 21:27

Теги

Похожие вопросы