Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: laskov в Jun 06, 2014, 12:24



Титла: LVM HowTo
Публикувано от: laskov в Jun 06, 2014, 12:24
Искам да направя snapshot, след което в него да инсталирам експериментален софтуер. Ако не ми харесва резултатът, мога да се върна към предишното състояние. А ако ми харесва? Какво (не) правя и какво се случва?

http://tldp.org/HOWTO/LVM-HOWTO/snapshotintro.html


Титла: Re: LVM HowTo
Публикувано от: neter в Jun 06, 2014, 13:36
Ти няма да инсталираш въпросния софтуер в snapshot-а, а в дяла, на който си направил snapshot. Ако решиш, че си доволен и няма да връщаш към състоянието от snapshot-а, премахваш snapshot-а и приключваш със случая
Цитат
lvremove /dev/VG_name/Snapshot_LV_name

П.П.: Преди да го премахваш, размонтирай snapshot-а, ако поради някаква причина си го монтирал!


Титла: Re: LVM HowTo
Публикувано от: laskov в Jun 06, 2014, 23:52
В текста от препратката, доколкото разбирам, казват друго:
Цитат
One example is to snapshot a volume, mount the snapshot, and try an experimental program that change files on that volume. If you don't like what it did, you can unmount the snapshot, remove it, and mount the original filesystem in its place.
Ако тръгна по твоя начин, тогава ще попитам - ако съм доволен добре. Махам snapshot-а. А ако не съм доволен, какво правя? :)

Между другото, мога да заобиколя проблема, като създавам пакети, който инсталирам и ако не не ми харесва - деинсталирам. Не знам обаче, как това се прави с cpan.


Титла: Re: LVM HowTo
Публикувано от: neter в Jun 07, 2014, 02:58
В текста от препратката, доколкото разбирам, казват друго
Основната разликата между двата метода, която ще усетиш, е огледално обърнатите действия в случай на отказ от или прибягване към възстановяване на данните. В случая от ръководството ще правиш по-сложното действие при отказ от възстановяване, а в моя случай - при прибягване към възстановяване. Въпрос на вкус. Аз предпочитам втория, тъй като ми спестява монтирането на snapshot-а, а и експериментите най-често си ги правя в тестови виртуалки, а на работните системи най-често правя действия, които очаквам да работят и бих искал да запазя резултата им, така че по-често прибягвам към отказ от възстановяване и така ми се налага да направя по-простото действие по премахване на snapshot-а. Но ти си прецени за теб, де :)

Ако тръгна по твоя начин, тогава ще попитам - ако съм доволен добре. Махам snapshot-а. А ако не съм доволен, какво правя? :)
1. Демонтираш дяла;
2. Демонтираш snapshot-а, ако поради някаква причина си го монтирал;
3. Изпълняваш
Цитат
lvconvert --merge /dev/VG_name/Snapshot_LV_name
4. Ако предната команда върне подобно съобщение
Цитат
Can't merge over open origin volume
трябва след това да деактивираш и активираш дяла с команди
Цитат
lvchange -an /dev/VG_name/LV_name
lvchange -ay /dev/VG_name/LV_name

Стъпките са същите и за случая, когато правиш опитите в snapshot-а, и при задоволителен резултат искаш да прехвърлиш резултата на дяла.

Между другото, мога да заобиколя проблема, като създавам пакети, който инсталирам и ако не не ми харесва - деинсталирам. Не знам обаче, как това се прави с cpan.
Старомодният начин за деинсталиране на cpan модули е като отидеш в папката на модула, където е бил разархивиран при инсталирането му (тази папка най-вероятно е в ~/.cpan), и оттам да изпълниш команда
Цитат
make uninstall
Това, разбира се, няма да деинсталира зависимостите (ако има такива), качени с модула, който деинсталираш, така че ще трябва да обходиш и тях.
Попаднах на тези два модула - pm-uninstall ($2) и perlrocks ($2). Те би трябвало да ти помогнат при деинсталиране на cpan модули, но не ми се е налагало да ги ползвам, така че се зачети в документацията им.

П.П.: Забравих да кажа да имаш предвид, че все пак "моят" (той не е мой) алгоритъм е малко по-опасен от обратния, заради вероятността при лоша преценка заделеното място за snapshot-а да се препълни, при което snapshot-ът става невалиден и не могат да се възстановяват данни от него. При обратния метод (действие в snapshot-а) евентуално препълване би довело единствено до неудобството да се наложи премахване на snapshot-а и започване на опитите отначало. Така че, ако избереш алгоритъма с проби в дяла, а не в snapshot-а, не се скъпи откъм размер на мястото за snapshot-а ;)


Титла: Re: LVM HowTo
Публикувано от: gat3way в Jun 07, 2014, 03:17
Ще гледате сеир ако въпросния софтуер на въпросната файлова система включва динамични библиотеки ширпотреба, примерно в лошия случай libc. Ако успееш да го unmount-неш ще се радвам да разбера как.


Титла: Re: LVM HowTo
Публикувано от: neter в Jun 07, 2014, 03:27
Е, в такива случаи възстановяването/прехвърлянето се прави от външна система (била тя от LiveCD, LiveUSB, система на друг диск и т.н.) :)


Титла: Re: LVM HowTo
Публикувано от: koue в Jun 07, 2014, 10:28
Вариантът, с "make uninstall", работи, но не всички компилации от сорс имат таргет "uninstall". Провери Makefile-а преди да изпълниш  "make install".
Аз в такъв случай използвам "./configure --prefix=/neshto/si" като след инсталиране трябва да се конфигурира LD_LIBRARY_PATH=/neshto/si/lib, ако този софтуер инсталира библиотеки, които трябва да се зареждат. Накрая "rm -rf /neshto/si" върши идеална работа.
За cpan модули не съм пробвал, но това предполагам ще ти свърши работа:
http://docstore.mik.ua/orelly/perl4/porm/ch13_06.htm