2011-07-30 7 views
25

इंस्टॉल करता है मान लें कि मैं पूरी तरह से जीएचसी/एचपी को पुनर्स्थापित करना चाहता हूं। मैं चाहता हूं (कुछ भी के रूप में अंधविश्वास के लिए) पिछले कुछ स्थापित से कुछ भी और सब कुछ हटा दें। मुझे वास्तव में (और कहां) हटाने की क्या ज़रूरत है?हर जगह जहां जीएचसी/हास्केल प्लेटफ़ॉर्म

संपादित करें: मैं ओएसएक्स पर हूं, लेकिन अगर मैं यह जानकारी सामान्य रूप से सभी प्रणालियों के लिए उपलब्ध हूं, तो मैं अधिक उत्सुक हूं।

EDIT2: अब तक हमने:

OSX:
/Library/Frameworks/GHC.framework/
~/.cabal/
/usr/bin/- सिमलिंक

मैं 'है कि करने के लिए जोड़ देंगे ("उपसर्ग" यहां परिभाषित के आधार पर: http://www.vex.net/~trebla/haskell/sicp.xhtml#storage):
उपसर्ग/lib/
उपसर्ग/शेयर/
उपसर्ग/bin/
,210 उपसर्ग/शेयर/doc/
/usr (/ स्थानीय)/lib/[GHC-संस्करण]
/usr (/ स्थानीय)/शेयर/doc/GHC/html/पुस्तकालयों/- प्रलेखन
/usr (/ स्थानीय)/शेयर/doc/GHC/
/usr (/ स्थानीय)/बिन
/var/lib/[GHC-संस्करण]
/etc/[GHC-संस्करण]
~/.ghc/

संपादित करें 3:
ओएस एक्स:
~/Library/हास्केल

लिनक्स:
??

विंडोज़:
??

+2

आप किस ओएस चल रहे हैं? –

+0

मुझे ओएसएक्स के बारे में कुछ भी पता नहीं है, लेकिन यह मंच पर अत्यधिक निर्भर है और आपने इसे कैसे इंस्टॉल किया है। उदाहरण के लिए, यदि मैं उबंटू पर पैकेज मैनेजर के माध्यम से एचपी स्थापित करता हूं, तो मैं इसे फिर से हटाने के लिए पैकेज मैनेजर का उपयोग कर सकता हूं। एक मैन्युअल इंस्टॉल पर जिस पर मैं वर्तमान में चल रहा हूं, मेरे पास सबकुछ अपनी निर्देशिका में है और इसे हटाने के लिए उस निर्देशिका को हटाना होगा। – hammar

+0

मुझे "बाहरी सीमाएं" में अधिक दिलचस्पी है: इसलिए, यह सुनिश्चित करने के लिए कि किसी व्यक्ति को एचपी और "कैबल इंस्टॉल" आईएनजी स्थापित करने का कोई प्रत्यक्ष परिणाम उलट दिया गया हो, उदाहरण के लिए हटा दिया गया है। – amindfv

उत्तर

2

मैं ओएसएक्स (शेर एटीएम) पर हूं। मुझे /Library/Frameworks/GHC.framework/ (वर्तमान और पिछले संस्करण) में जीएचसी मिला है।/Usr/bin में कुछ सिम्लिंक भी हैं, लेकिन इन्हें एक नए इंस्टॉल द्वारा प्रतिस्थापित किया जाएगा।

यदि आपने पैकेज को इंस्टॉल करने के लिए स्थानीय रूप से कैबल का उपयोग किया है, तो आप ~/.cabal को भी साफ़ करना चाहेंगे।

for package in `ls ~/.cabal/lib/`; do 
    if [ ! -d ~/.cabal/lib/${package}/ghc-7.0.3 ]; then 
     echo $package; 
    else 
     echo "OK for $package"; 
    fi; 
done 

इन होना चाहिए: आप हाल ही में कबाल है, तो आप आसानी से सभी संकुल कबाल दुनिया इंस्टॉल करें और फिर का उपयोग करके 'नए' GHC संस्करण के लिए तुम इतनी तरह था GHC के पिछले संस्करण से मेल खाते निर्देशिका के लिए देखो पुनर्स्थापित कर सकते हैं हटाने के लिए सुरक्षित।

उम्मीद है कि यह आपको कुछ हद तक मदद करता है।

+0

यह जानकारी उपरोक्त "संपादित 2" में है। धन्यवाद। – amindfv

+0

मैं पूरी तरह से ~/.ghc के बारे में भूल गया: -/प्रति संस्करण संस्करण है जहां आप भी देखना चाहते हैं। – Itkovian

22

हाल ही में ओएस एक्स पर हास्केल प्लेटफ़ॉर्म को हटाना पड़ा।अधिकांश Uninstaller के माध्यम से साफ हो जाने:

sudo /Library/Frameworks/GHC.framework/Versions/Current/Tools/Uninstaller 

इन मैन्युअल रूप से साफ किया जा करने के लिए है के रूप में

/Library/Haskell/doc/start.html 

में दस्तावेज,

rm -r ~/.cabal 
rm -r ~/.ghc 
rm -r ~/Library/Haskell 

वैकल्पिक रूप से वहाँ अब विकल्प के साथ एक कस्टम स्थापना रद्द करें आदेश है ,

/Library/Haskell/bin/uninstall-hs 

सामान्य तौर पर, एक आप 2012 के बारे में ओएस एक्स पर के बाद से एक हास्केल मंच स्थापित किया है

echo >timestamp 
[activity] 
sudo find -x/-newer timestamp -print >snapshot.txt 
+2

दूसरा विकल्प, 'अनइंस्टॉल-एचएस', अब सबसे अच्छा जवाब प्रतीत होता है। – PLL

12

के साथ एक काम निर्देशिका की गतिविधियों bracketing द्वारा किसी भी गतिविधि (संस्थापक, ...) द्वारा बनाई गई फ़ाइलों दस्तावेज़ कर सकते हैं , बस

uninstall-hs 

और ध्यान से पढ़ें कि यह क्या आउटपुट करता है। आपको इसे फिर से उपलब्ध विकल्पों के साथ चलाने की आवश्यकता होगी। रन

uninstall-hs --help 

अधिक विकल्पों के लिए।


नीचे मेरी मूल जवाब है, जो अभी भी काम करेगा है, लेकिन के रूप में कई विकल्प प्रदान नहीं करता है और थोड़ा "हैम fisted" है:

चेतावनी: यह स्क्रिप्ट चरम है। यह भी जीएचसी और कैबल के लिए आपकी कस्टम कॉन्फ़िगरेशन फ़ाइलों को हटा देगा, और आपके द्वारा बनाए गए निष्पादन योग्य जो अभी भी ~/Library/Haskell या ~/.cabal में हैं। सावधानी बरतें; समीक्षा करें कि यह क्या करने वाला है; बैकअप है; चेतावनी शास्त्र!

#!/bin/bash 
set -x 

sudo rm -rf /Library/Frameworks/GHC.framework 
sudo rm -rf /Library/Frameworks/HaskellPlatform.framework 
sudo rm -rf /Library/Haskell 
rm -rf ~/.cabal 
rm -rf ~/.ghc 
rm -rf ~/Library/Haskell 
find /usr/bin /usr/local/bin -type l | \ 
    xargs -If sh -c '/bin/echo -n f /; readlink f' | \ 
    egrep '//Library/(Haskell|Frameworks/(GHC|HaskellPlatform).framework)' | \ 
    cut -f 1 -d ' ' > /tmp/hs-bin-links 
sudo rm -f `cat /tmp/hs-bin-links` 

आप की तरह से बचाने के लिए और अपने config फ़ाइलों को पुनर्स्थापित करने के लिए लाइनों को जोड़ने के लिए चाहते हो सकता है:

mv ~/.cabal/config /tmp/cabal-config 2>/dev/null || true 
mv ~/.ghc/gchi.conf /tmp/ghci-config 2>/dev/null || true 

और

mkdir ~/.cabal 
mkdir ~/.ghc 
cp /tmp/cabal-config ~/.cabal/config 2>/dev/null || true 
cp /tmp/ghci-config ~/.ghc/gchi.conf 2>/dev/null || true 

ब्रैकेट इन के साथ rm लाइनों। यद्यपि आप अपने पुराने ~/.cabal/config चाहते हैं या नहीं, यदि आप नई सामग्री में अपग्रेड कर रहे हैं।

ध्यान दें कि यह केवल वर्तमान उपयोगकर्ता की होम निर्देशिका से संबंधित है। यदि आपके पास एकाधिक उपयोगकर्ता खाते हैं जो सभी हास्केल का उपयोग करते हैं, तो अन्य खातों को भी सफाई की आवश्यकता होगी। (~ से जुड़ी लाइनों को दोहराएं।)

2

uninstall-hs आपके लिए कुछ काम करता है; मुझे यकीन नहीं है कि कितना।

+2

मैंने उपरोक्त स्क्रिप्ट के विकास के बाद 'अनइंस्टॉल-एचएस' लिखा था! यह पूरी तरह से है, लेकिन यह अधिक लचीला है और इसमें कई विकल्प हैं। – MtnViewMark

संबंधित मुद्दे