Имя хоста дисплея в ping производится

OP решение и выводы

На основании предыдущих ответов здесь представлено решение, которое я закончил.


1. Скопируйте исходный код

Скопируйте исходный код на ВМ или другую машину. Я использовал :

scp -R /host/path/to/src/ user@remoteHost:/remote/build/path/

Это все равно, что отправиться в путешествие, так что собирайте хорошо, соберите все исходные тексты, которые вам нужны для компиляции, за минусом общих libs и других ресурсов, которые вы можете найти на другой машине.

2. Установка зависимостей (libs/build tools)

Перевернутая ВМ для базовой установки (centOS7 min) и обновленные инструменты, используемые для сборки моего приложения, на основе проб и ошибок (yum search, install, try build command)

yum -y update
yum -y install boost-*      #probably could have used only boost-devel
yum -y install glibc-utils
yum -y install gcc-c++
yum -y install git
yum -y install libtool       
yum -y install zlib-devel    
yum -y install ncurses-devel 
yum -y install make          
yum -y install cmake         
yum -y install openssl-devel 
yum -y install libssh2-devel
...

Если ваш проект зависит от (более новых) библиотек, недоступных в репозитории ОС, установите из исходных текстов:

Например, мне нужны curl, собранный с помощью c-ares, и обновленная клиентская библиотека mysql.

#mysqlclient
if [[ -z $(ldconfig -p | grep libmysqlclient) ]]
then
    mkdir -p "${INSTALL_PREQ_PATH}/lib/mysql/";
    cd "${INSTALL_PREQ_PATH}lib/mysql/"
    wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    yum -y localinstall mysql-community-release-el7-5.noarch.rpm
    sudo yum install mysql-community-client
    sudo yum install mysql-community-devel
fi


#c-ares
if [[ -z $(ldconfig -p | grep libcares) ]]
then
    mkdir -p "${INSTALL_PREQ_PATH}lib/libcares/"
    cd "${INSTALL_PREQ_PATH}lib/libcares/"
    git clone git://github.com/bagder/c-ares.git
    cd c-ares
    ./buildconf
    ./configure
    make
    sudo make install
    ldconfig
fi

#libcurl
if [[ -z $(ldconfig -p | grep libcares) ]]
then
    mkdir -p "${INSTALL_PREQ_PATH}lib/libcurl/"
    cd "${INSTALL_PREQ_PATH}lib/libcurl/"
    wget http://curl.haxx.se/download/curl-7.39.0.tar.gz
    tar -xvzf curl-7.39.0.tar.gz
    cd curl-7.39.0
    ./configure --enable-ares --with-libidn --with-zlib --disable-ipv6
    make
    sudo make install
    ldconfig
fi

Obs: Каждая сборка поставляется со своими собственными зависимостями, которые были добавлены к вышеуказанному шагу.

3. Установлена зависимость Foreach, проверьте, работает ли она, и проверьте, не сломали ли вы что-нибудь

Проверьте, загружены ли библиотеки системой:

ldconfig                    # update library cache
ldconfig -p | grep libcurl  # check for library

В моем случае библиотеки были установлены в папку /usr/local/lib/, которая по умолчанию не включена в путь поиска сборщика ссылок. Чтобы исправить это, выполните следующие действия:

echo "/usr/local/lib/">/etc/ld.so.conf.d/local.conf    #add lib search path
ldconfig                                               #reload library cache

Также проверьте, работают ли другие программы, использующие эту разделяемую библиотеку. В моем случае установка curl сломала yum, так как отсутствовал ssh и ssl, исправление:

rm /etc/ld.so.conf.d/local.conf              #remove the new libs search path
ldconfig                                     #reload
yum install openssl-devel                    #install ssl dependency
yum install libssh2-devel                    #install ssh dependency
cd "${INSTALL_PREQ_PATH}lib/libcurl/"        #go to libcurl source path
./configure --enable-ares --with-libidn --with-zlib --disable-ipv6 --with-ssl --with-libssh2   # configure build with ssl and ssh
make                                         #compile
sudo make install                            #install binary, libs and headers
echo "/usr/local/lib/">/etc/ld.so.conf.d/local.conf    #add lib search path
ldconfig                                               #reload library cache

4. Собирайте свою программу

В моем случае я использовал тот же компилятор, что и на ubuntu, gcc-c++ (g++). В случае, если он не работает:

  • Посмотрите, нет ли какой-либо зависимости, почитайте предупреждения и ошибки
  • Проверьте версию компилятора на обеих машинах, проверьте, есть ли различия в поддержке вашего кода и флагов компилятора, воспользуйтесь Интернетом для поиска путей обновления компилятора для вашей ОС

Другие примечания:

  • Запишите свои шаги, желательно в бэш-скрипте, чтобы можно было повторить попытку или (пере)установить на другую машину.
  • Это не очень хороший совет для производственной машины, запустите пробную установку где-нибудь в другом месте.
  • Если вы используете VM, делайте снимки, в противном случае делайте резервное копирование, и всегда будьте готовы к неудаче
  • Не следуйте моим советам, это то, что сработало для меня, это может не сработать для всех, и может быть плохим выбором для других случаев. Я не эксперт, просто пишу, чтобы помочь другим нобам вроде меня :)
0
12.03.2015, 13:27
2 ответа

Результат выглядит совершенно нормально.

Многие (большинство?) Реализаций ping не выполняют обратный поиск в DNS. Если вы передаете IP-адрес, он отображает IP-адрес.

В конце концов, зачем ему DNS? Для проверки связи требуется только IP-адрес. Если вы передаете имя хоста, ping выполняет поиск в DNS, чтобы получить адрес. Если вы передаете IP-адрес, ping просто использует IP-адрес.

Если вы хотите выполнить обратный поиск в DNS, используйте инструмент, предназначенный для работы с DNS, например хост 192.168.56.42 или nslookup 192.168.56.42 . Обратите внимание, что для того, чтобы машина знала имя другой машины, недостаточно установить имя в файле / etc / hosts : это не позволит другим машинам узнать об этом. Обычный способ объявить имя машины в системах Unix (как и в большинстве других стран мира за пределами протоколов до Интернета) - это зарегистрировать его в DNS. Некоторое программное обеспечение виртуальных машин автоматически предоставляет службы DNS виртуальным машинам и обслуживает имена, объявленные в / etc / hosts (или HOSTS.TXT в Windows) на хосте.Если у вас нет, настройте DNS-сервер (см. этот ответ для возможного способа).

В Linux может быть способ поддержки протоколов сетевого обнаружения Windows (NetBIOS?), Но я не знаком с этим, поэтому я не могу вам сказать, как это сделать. Если это удастся заставить работать, вам, вероятно, придется установить Samba на машине Linux и настроить ее для рекламы себя в сети (Windows имеет тенденцию по умолчанию широко открыта, но Linux по умолчанию скрытно, так что вы ' Вам нужно будет активно включить трансляцию имен).

2
28.01.2020, 02:36

для этого сервера в зоне DNS нет записи DNS.

0
28.01.2020, 02:36

Теги

Похожие вопросы