Deinstallieren Sie OSX-gcc-installer, ohne zuvor Xcode installiert zu haben

2

Gibt es eine Möglichkeit, die ich deinstallieren kann, osx-gcc-installerohne zuerst Xcode installieren und dann ausführen zu müssen sudo /Developer/Library/uninstall-devtools —mode=all?

Ich habe es auf Mountain Lion installiert und möchte es entfernen, damit meine CLITools Octopress installieren können .

Gibt es ein Skript oder einen Befehl, mit dem ich mich vollständig osx-gcc-installervon meinem System entfernen kann?

Danijel-James W
quelle

Antworten:

2

Von dem, was ich in der Entwickler-Skripte zu sehen bin hier , es sieht aus wie er empfiehlt , dass Sie Xcode über die Spitze seiner „osx-gcc-installer“ installieren zu können ... An diesem Punkt deinstallieren, können Sie das ausführen uninstall-devtools script ...

Vom Entwickler:

Wenn etwas nicht wie erwartet funktioniert, können Sie Xcode über diese Installation installieren.

Nach der Installation können Sie Xcode wie folgt vollständig entfernen:

sudo /Developer/Library/uninstall-devtools -mode=all

Alternativ können Sie den eigentlichen Skriptinhalt kopieren und in ein leeres Textdokument (möglicherweise mit dem Namen "uninstall-devtools") einfügen, es bearbeitbar machen ( chmod 755 uninstall-devtools) und dann ausführen ( sudo ./uninstall-devtools -mode=all):

#!/usr/bin/perl
####################################################################################################
#
# Copyright (c) 2002-2011 Apple, Inc.
# Xcode 4.2
#
# NAME
#     uninstall-devtools -- Meta-script for running the various devtools uninstaller scripts.
#
# SYNOPSIS
#     sudo /Developer/Library/uninstall-devtools --mode=all
#     sudo /Developer/Library/uninstall-devtools --mode=xcodedir
#     sudo /Developer/Library/uninstall-devtools --mode=unixdev
#     sudo /Developer/Library/uninstall-devtools --mode=systemsupport
#
# Where the specified 'mode' value invokes the following devtools uninstaller scripts:
#
#     all:
#         /Library/Developer/Shared/uninstall-devtools
#         /Library/Developer/4.2/uninstall-devtools
#         /Developer/Library/uninstall-developer-folder
#
#     xcodedir:
#         /Developer/Library/uninstall-developer-folder
#
#     unixdev:
#         /Library/Developer/Shared/uninstall-devtools
#
#     systemsupport:
#         /Library/Developer/Shared/uninstall-devtools
#         /Library/Developer/4.2/uninstall-devtools
#
# The default value for 'mode' is 'all'.
#
# DESCRIPTION
#     This command runs the appropriate devtools uninstaller scripts according to the usage
#     specified on the command line.
####################################################################################################

my $do_nothing     = 0;
my $verbose        = 0;
my $warning        = 0;
my $debug          = 0;
my $help           = 0;
my $mode           = '';

get_options(
    'do-nothing' => \$do_nothing,
    'verbose' => \$verbose,
    'warning' => \$warning,
    'debug' => \$debug,
    'help' => \$help,
    'mode' => \$mode,
);

####################################################################################################

if ($help == 1) {
    print("Usage: $0 --mode=<all|xcodedir|unixdev|systemsupport>\n");
print <<"END";
This is a meta-script which invokes one or more of the devtools
uninstaller scripts, depending on which mode you select.

The recognized modes are:
all:
    /Library/Developer/Shared/uninstall-devtools
    /Library/Developer/4.2/uninstall-devtools
    /Developer/Library/uninstall-developer-folder

xcodedir:
    /Developer/Library/uninstall-developer-folder

unixdev:
    /Library/Developer/Shared/uninstall-devtools

systemsupport:
    /Library/Developer/Shared/uninstall-devtools
    /Library/Developer/4.2/uninstall-devtools

The default value for 'mode' is 'all'.
END
    exit(0);
}

####################################################################################################
# Determine if we are authorized to uninstall the devtools packages.
####################################################################################################

$| = 1;
if (($do_nothing == 0) && ($< != 0)) {
    die("ERROR: Must be run with root permissions -- prefix command with 'sudo'.\n");
}

####################################################################################################

my $uninstaller_script = $0;
my ($uninstaller_dir,$uninstaller_script_basename) = parse_name($uninstaller_script);
if ($uninstaller_dir eq '.') {
    die("ERROR: Must change to another directory before running this script, since the current directory is about to be deleted.\n");
}
my ($developer_dir,$developer_dir_basename) = parse_name($uninstaller_dir);

####################################################################################################

my @flags = ();
if ($do_nothing == 1) {
    push(@flags,'--do-nothing');
}
if ($verbose == 1) {
    push(@flags,'--verbose');
}
if ($warning == 1) {
    push(@flags,'--warning');
}
if ($debug == 1) {
    push(@flags,'--debug');
}

if (($mode eq '') || ($mode eq 'all')) {
    run_uninstaller_script("/Library/Developer/4.2/uninstall-devtools",\@flags);
    run_uninstaller_script("/Library/Developer/Shared/uninstall-devtools",\@flags);
    run_uninstaller_script("$developer_dir/Library/uninstall-developer-folder",\@flags);
} elsif ($mode eq 'xcodedir') {
    run_uninstaller_script("$developer_dir/Library/uninstall-developer-folder",\@flags);
} elsif ($mode eq 'unixdev') {
    run_uninstaller_script("/Library/Developer/Shared/uninstall-devtools",\@flags);
} elsif ($mode eq 'systemsupport') {
    run_uninstaller_script("/Library/Developer/4.2/uninstall-devtools",\@flags);
    run_uninstaller_script("/Library/Developer/Shared/uninstall-devtools",\@flags);
} else {
    die("Usage: $0 --mode=<all|xcodedir|shared|systemsupport>\n");
}
print("IMPORTANT: If you are going to install a previous version of the Developer Tools, be sure to restart the machine after installing.\n");

####################################################################################################

sub get_options {
    while (@_) {
    my $option_name = shift(@_);
    my $option_pointer = shift(@_);

    foreach my $arg (@ARGV) {
        if ($arg =~ /^--$option_name/) {
        my ($arg_name,$arg_value) = split(/=/,$arg);
                $arg_value = 1 if (!$arg_value);
        $$option_pointer = $arg_value;
        }
    }
    }
}

####################################################################################################

sub parse_name {
   my $name = shift;
   my ($dir_name,$base_name) = ($name =~ m{^(.*/)?(.*)}s);
   $dir_name =~ s|(.*)/$|$1|s;
   return ($dir_name,$base_name);
}

####################################################################################################

sub run_uninstaller_script {
    my $script = shift;
    my $flagsref = shift;

    if (-x $script) {
        my @args = ();
        push(@args,$script);
        foreach my $flag (@$flagsref) {
            push(@args,$flag);
        }

        system({$args[0]} @args);
    }
}

####################################################################################################
Eddie Kelley
quelle
0

Leider hat osx-gcc-installer einige Systemdateien überschrieben, die eigentlich "shims" sind. Selbst wenn Sie dieses Skript ausführen, um die überschriebenen Dateien zu löschen, müssen Sie die ursprünglichen Systemdateien wiederherstellen.

Führen Sie zunächst das in der anderen Antwort vorgeschlagene Skript aus. Dann:

Sie können OSX entweder aus dem App Store herunterladen und erneut installieren. Oder Sie können die OSX Mavericks-Shims von diesem Torrent herunterladen und sie in Ihren Ordner / usr / bin kopieren und die dort vorhandenen überschreiben:

https://archive.org/details/completely_uninstall_osx-gcc-installer

Hinweis: Dies war die Lösung, die ich für OSX Mavericks (10.9) gefunden habe, aber sie könnte auch für Sie funktionieren. Seien Sie vorsichtig bei der Verwendung dieser Mavericks / usr / bin-Dateien in Ihrem Mountain Lion. Vielleicht möchten Sie Mountain Lion erneut herunterladen und eine Prozedur wie diese verwenden: http://magnemg.tumblr.com/post/113260971290/how-to-extract-only-the-necessary-usr-bin-files

PS: Diese Antwort sollte alles enthalten, was Sie wissen müssen. Weitere Informationen finden Sie unter: http://magnemg.tumblr.com/post/113251602430/how-to-completely-uninstall-osx-gcc-installer

Magne
quelle
Bitte geben Sie hier eine Antwort (nicht nur den Link), da diese in Zukunft möglicherweise nicht mehr funktioniert.
Mateusz Szlosek
1
OK, fertig. Ich habe die Antwort mit allen notwendigen Informationen aktualisiert. Ich musste es auf ziemlich hohem Niveau schreiben, um im Grunde genommen nicht meinen gesamten Blog-Beitrag darin einzufügen.
Magne