Atom编辑器无法安装软件包

时间:2018-11-23 07:25:34

标签: atom-editor

我试图在Atom编辑器中安装软件包,但总是失败,就像我无法连接到服务器一样。

例如,apm install split-diff返回Request for package information failed: getaddrinfo ENOTFOUND atom.io atom.io:443 (ENOTFOUND)

我正在Linux Mint 19上运行Atom 1.32.2。 我不使用代理。

5 个答案:

答案 0 :(得分:0)

我刚刚安装了split-diff,并且加载得很好。打开Atom,然后在Atom菜单项下选择首选项。这将打开一个新窗口,并且在窗格的左侧是一行动作,这些动作以Core开头,然后是Editor,URI Handling和5个其他动作。单击安装操作。在这里您可以找到并安装扩展程序。单击“安装”后,窗格将更改,并且顶部会出现一个搜索框。在搜索框中,键入split-diff,然后将显示扩展名。该脚本应该有一个蓝色的安装按钮。单击安装,它应该可以工作。

答案 1 :(得分:0)

最后,我发现了错误所在!

出于个人方便的原因,我用符号链接(指向我的〜/文件夹中的某个位置)替换了/ etc / hosts。这是apm所不喜欢的。 (不知道为什么。我很高兴知道...)切换回/ etc / hosts的真实文件使我能够再次安装软件包。

答案 2 :(得分:0)

我在Ubuntu 16.04上,遇到了这个问题。我有一个名为/ etc / hosts /的目录,它是this repo的克隆版本。

显然拥有一个与文件相同的目录并不是完全明智的选择,但是我能够通过移动目录并再次运行该仓库的安装脚本来解决该问题。安装脚本会调用a刷新DNS文件,该文件位于this file here的第1193行。

我提取了应该起作用的脚本/函数;

#!/usr/bin/env python3

# Script by Ben Limmer
# https://github.com/l1m5
#
# This Python script will combine all the host files you provide
# as sources into one, unique host file to keep you internet browsing happy.

import argparse
import fnmatch
import json
import locale
import os
import platform
import re
import shutil
import socket
import subprocess
import sys
import tempfile
import time
from glob import glob

import lxml  # noqa: F401
from bs4 import BeautifulSoup

# Detecting Python 3 for version-dependent implementations
PY3 = sys.version_info >= (3, 0)

if PY3:
    from urllib.request import urlopen
else:
    raise Exception("We do not support Python 2 anymore.")

# Syntactic sugar for "sudo" command in UNIX / Linux
if platform.system() == "OpenBSD":
    SUDO = ["/usr/bin/doas"]
else:
    SUDO = ["/usr/bin/env", "sudo"]


# Project Settings
BASEDIR_PATH = os.path.dirname(os.path.realpath(__file__))

def flush_dns_cache():
    """
    Flush the DNS cache.
    """

    print("Flushing the DNS cache to utilize new hosts file...")
    print(
        "Flushing the DNS cache requires administrative privileges. You might need to enter your password."
    )

    dns_cache_found = False

    if platform.system() == "Darwin":
        if subprocess.call(SUDO + ["killall", "-HUP", "mDNSResponder"]):
            print_failure("Flushing the DNS cache failed.")
    elif os.name == "nt":
        print("Automatically flushing the DNS cache is not yet supported.")
        print(
            "Please copy and paste the command 'ipconfig /flushdns' in "
            "administrator command prompt after running this script."
        )
    else:
        nscd_prefixes = ["/etc", "/etc/rc.d"]
        nscd_msg = "Flushing the DNS cache by restarting nscd {result}"

        for nscd_prefix in nscd_prefixes:
            nscd_cache = nscd_prefix + "/init.d/nscd"

            if os.path.isfile(nscd_cache):
                dns_cache_found = True

                if subprocess.call(SUDO + [nscd_cache, "restart"]):
                    print_failure(nscd_msg.format(result="failed"))
                else:
                    print_success(nscd_msg.format(result="succeeded"))

        centos_file = "/etc/init.d/network"
        centos_msg = "Flushing the DNS cache by restarting network {result}"

        if os.path.isfile(centos_file):
            if subprocess.call(SUDO + [centos_file, "restart"]):
                print_failure(centos_msg.format(result="failed"))
            else:
                print_success(centos_msg.format(result="succeeded"))

        system_prefixes = ["/usr", ""]
        service_types = ["NetworkManager", "wicd", "dnsmasq", "networking"]

        for system_prefix in system_prefixes:
            systemctl = system_prefix + "/bin/systemctl"
            system_dir = system_prefix + "/lib/systemd/system"

            for service_type in service_types:
                service = service_type + ".service"
                service_file = path_join_robust(system_dir, service)
                service_msg = (
                    "Flushing the DNS cache by restarting " + service + " {result}"
                )

                if os.path.isfile(service_file):
                    dns_cache_found = True

                    if subprocess.call(SUDO + [systemctl, "restart", service]):
                        print_failure(service_msg.format(result="failed"))
                    else:
                        print_success(service_msg.format(result="succeeded"))

        dns_clean_file = "/etc/init.d/dns-clean"
        dns_clean_msg = "Flushing the DNS cache via dns-clean executable {result}"

        if os.path.isfile(dns_clean_file):
            dns_cache_found = True

            if subprocess.call(SUDO + [dns_clean_file, "start"]):
                print_failure(dns_clean_msg.format(result="failed"))
            else:
                print_success(dns_clean_msg.format(result="succeeded"))

        if not dns_cache_found:
            print_failure("Unable to determine DNS management tool.")

答案 3 :(得分:0)

您需要使用过滤器断路器。安装file_icons软件包时遇到了同样的问题,并且在连接虹吸过滤器断路器时就安装了该软件包。

答案 4 :(得分:0)

检查您的DNS服务器。

今天下午,当最初一切都在Mac上运行时,我随机遇到了这个问题。

我可以上网。 Github已启动且未报告任何问题,Atom.io已启动...

从其他注释中可以看出re:etc / hosts仍然可以使我指向我的网络设置。

经过检查,我已经将我的DNS服务器配置为可进行VPN访问,一旦我还添加了OpenDNS服务器,Atom安装将重新开始工作。