> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AppSignal für Elixir: Installationsprüfungs-Tool

export const VersionRequirements = ({versions = []}) => {
  if (!Array.isArray(versions) || versions.length === 0) {
    return null;
  }
  const boundaries = {
    upper: " or lower",
    exact: "",
    lower: " or higher"
  };
  const containerStyle = {
    marginTop: "0.5rem",
    marginBottom: "1.5rem"
  };
  const lineStyle = {
    display: "block",
    margin: "0 0 0.35rem 0",
    fontSize: "0.875rem",
    lineHeight: "1.4"
  };
  const pillBaseStyle = {
    display: "inline-block",
    padding: "0.1em 0.4em",
    borderRadius: "0.25rem",
    border: "1px solid",
    fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
    fontSize: "0.85em",
    fontWeight: 500
  };
  const pillColors = {
    "AppSignal for Elixir": {
      background: "#f3e8ff",
      borderColor: "#e9d5ff",
      color: "#9333ea"
    },
    "AppSignal for Front-end": {
      background: "#fef9c3",
      borderColor: "#fde68a",
      color: "#ca8a04"
    },
    "AppSignal for Go": {
      background: "#ccfbf1",
      borderColor: "#99f6e4",
      color: "#0d9488"
    },
    "AppSignal for JavaScript": {
      background: "#fef9c3",
      borderColor: "#fde68a",
      color: "#ca8a04"
    },
    "AppSignal for Node.js": {
      background: "#dcfce7",
      borderColor: "#bbf7d0",
      color: "#16a34a"
    },
    "AppSignal for Python": {
      background: "#dbeafe",
      borderColor: "#bfdbfe",
      color: "#2563eb"
    },
    "AppSignal for Ruby": {
      background: "#fee2e2",
      borderColor: "#fecaca",
      color: "#dc2626"
    },
    "AppSignal for Rust": {
      background: "#ffedd5",
      borderColor: "#fed7aa",
      color: "#ea580c"
    }
  };
  const defaultPillColor = {
    background: "#f4f4f5",
    borderColor: "#e4e4e7",
    color: "#52525b"
  };
  const getPillStyle = name => ({
    ...pillBaseStyle,
    ...pillColors[name] || defaultPillColor
  });
  const getBoundText = bound => {
    return boundaries[bound] || boundaries.lower;
  };
  return <div style={containerStyle}>
      {versions.map((v, i) => <p key={`${v.name}-${v.version}-${v.bound || "lower"}-${i}`} style={lineStyle}>
          This feature requires{" "}
          <code style={getPillStyle(v.name)}>{v.name}</code> version {v.version}
          {getBoundText(v.bound)}.
        </p>)}
    </div>;
};

<VersionRequirements
  versions={[
{ name: "AppSignal for Elixir", version: "2.15.3" }
]}
/>

Das AppSignal-für-Elixir-Paket enthält ein Befehlszeilen-Tool, mit dem geprüft werden kann, ob die Erweiterung des Pakets ([eine NIF](/elixir/why-nif)) korrekt installiert wurde.

Unser Paket erzeugt keinen Fehler und lässt Builds nicht fehlschlagen, wenn die Erweiterung nicht korrekt installiert ist.
Dieses Verhalten ist *so beabsichtigt*.

Wir möchten lieber keine Daten an AppSignal melden, als ganze Anwendungen lahmzulegen, weil unsere Erweiterung nicht installiert werden konnte.

Wir wissen, dass es nicht immer einfach ist zu prüfen, ob unser Paket und die Erweiterung korrekt installiert wurden.
In manchen Fällen ist es am besten, einen Build oder ein Deployment fehlschlagen zu lassen, wenn dies geschieht. Das Check-Install-Tool kann dabei helfen.

Wenn Sie möchten, dass der Build fehlschlägt, wenn unsere Erweiterung nicht korrekt installiert ist, können Sie die Installationsprüfungs-Aufgabe in Ihrer CI (Continuous Integration) oder Ihrem Deployment-Prozess wie unten beschrieben ausführen.
Der Befehl wird mit dem Statuscode `1` fehlschlagen, wenn die Erweiterung nicht korrekt installiert ist.

## Verwendung

Führen Sie in der Befehlszeile Ihres Projekts aus:

<CodeGroup>
  ```bash Bash theme={null}
  mix appsignal.check_install
  ```
</CodeGroup>

### Mit einer Release-Binary

Führen Sie in der Befehlszeile Ihres Projekts aus:

<CodeGroup>
  ```bash Bash theme={null}
  bin/your_app command appsignal_tasks check_install
  ```
</CodeGroup>

## Exit-Codes

* Beendet sich mit Statuscode `0`, wenn die Installation der Erweiterung erfolgreich war.
* Beendet sich mit Statuscode `1`, wenn die Installation der Erweiterung nicht erfolgreich war.
