Мне удалось установить pdftk из хитрых (17.10) пакетов deb. Загрузите и затем установите в этом порядке:
libgcj-common libgcj17 pdftkЛучше всего установить gcc-6-base, чтобы избежать ошибок зависимостей, если вы делаете это из cli. [!d8 ]
Это должно сделать трюк ... пока.
Вы можете получить свое имя хоста от вашего DHCP-сервера - это часть спецификации DHCP.
https://tools.ietf.org/html/rfc1533#section-3.14
"Этот параметр указывает имя клиента"
Вы не получаете свое имя хоста от сервера DHCP.
Вы можете отправить свое имя хоста на сервер, что может изменить IP-адрес, который вы назначили. Вы можете изменить, какое имя отправлено, либо отредактировав соединение с сетевым менеджером (поле называется DHCP Client ID), либо вы можете редактировать (с правами root) /etc/dhcp/dhclient.conf. Посмотрите на строку, которая говорит:
send host-name "<hostname>";
... и измените <hostname> на все, что вам нравится.
По умолчанию Ubuntu получит свое Параметры DNS с маршрутизатора (если он их отправляет), но я подозреваю, что вы говорите о локальных DNS / mDNS, где вы можете получить доступ к другим компьютерам по имени своего хоста. Это называется Ahavi или Zeroconf в Ubuntu, и оно установлено по умолчанию.
Вы должны иметь доступ к вашему компьютеру с помощью <hostname>.local
Ответ d_inevitable почти решил мою проблему, но не полностью. Проблема заключалась в том, что хотя:
DHCP-сервер отправил имя хоста (добавивoption host name 'client1'
в dhcpd.conf), и я действительно проверил его, захватив и проанализировав содержимое предложения DHCP с помощью wirehark Клиент DHCP ожидал имя хоста с сервера DHCP (добавив request host-name
в dhclient.conf) Клиент не получал новое имя хоста (его легко проверить, набрав
hostname
в терминале и получить старое имя хоста или без имени хоста, если я удалил содержимое / файл). В результате предлагаемое решение d_inevitable только копировало пустую строку.
Чтобы решить эту проблему, я применил решение crud, которое, как правило, не должно выполняться, если вы не отчаянно пытаетесь заставить его работать, как я был.
Сначала открываем с возможностью редактирования сценарий управления клиентом DHCP:
sudo vi /sbin/dhclient-script
Там вам нужно будет найти функцию
set_hostname()
Просто используйте поиск, и он должен появиться. Теперь, по крайней мере на моем компьютере, эта функция имеет три условия if-then-else, инкапсулированные друг другу:
# установить имя хоста set_hostname () {local current_hostnameif [ -n "$new_host_name" ]; then
current_hostname=$(hostname)
# current host name is empty, '(none)' or 'localhost' or differs from new one from DHCP
if [ -z "$current_hostname" ] ||
[ "$current_hostname" = '(none)' ] ||
[ "$current_hostname" = 'localhost' ] ||
[ "$current_hostname" = "$old_host_name" ]; then
if [ "$new_host_name" != "$old_host_name" ]; then
hostname "$new_host_name"
fi
fi
fi }
[d17 ] Теперь вам нужно принудительно назначить новое имя хоста вашему хосту, несмотря ни на что. Поэтому вы хотите прокомментировать два инкапсулированные if-then-else. Результат должен выглядеть примерно так: # установить имя хоста set_hostname () {local current_hostname
if [ -n "$new_host_name" ]; then
current_hostname=$(hostname)
# current host name is empty, '(none)' or 'localhost' or differs from new one from DHCP
#if [ -z "$current_hostname" ] ||
# [ "$current_hostname" = '(none)' ] ||
# [ "$current_hostname" = 'localhost' ] ||
# [ "$current_hostname" = "$old_host_name" ]; then
# if [ "$new_host_name" != "$old_host_name" ]; then
hostname "$new_host_name"
# fi
#fi
fi }
# установить имя хоста set_hostname () {local current_hostname
Если обнаружено, что может быть ошибкой скриптов dhcpclient. http://blog.schlomo.schapiro.org/2013/11/setting-hostname-from-dhcp-in-debian.html
Попробуйте очистить $ old_host_name на ip renew
[d3 ] echo unset old_host_name> /etc/dhcp/dhclient-enter-hooks.d/unset_old_hostnameТакже статическое / etc / hostname, по-видимому, имеет приоритет над ответом dhcp, поэтому оставьте его пустым
echo unset old_host_name> /etc/dhcp/dhclient-enter-hooks.d/unset_old_hostname
> / etc / hostname
Ответ зависит от того, используете ли вы статические лизинг на своем DHCP-сервере. Если это так, нет необходимости получать имя хоста из DNS. Вы можете изменить эту строку в решении d_inevitable
hostname=$(host $new_ip_address | cut -d ' ' -f 5)
на
hostname=${new_host_name}
Но это должно произойти автоматически, если ваше имя хоста первоначально установлено на localhost.localdomain, поэтому вы не нужно написать сценарий. Однако, если вы хотите установить имя хоста для полного доменного имени, вам нужно будет сменить сценарий d_inevitable на
hostname=${new_host_name}.${new_domain_name}
. И все это работает только в том случае, если вы используете статические лизинг.
Не хватает репутации для комментариев, но мне хотелось бы ответить на предыдущий ответ, поскольку он почти решил проблему для меня, используя крюк dhclient.
Я обнаружил, что с использованием стандартного DHCP-сервера ISC по какой-либо причине вышеупомянутый хост выводит имя хоста с именем «.» (! d1)
Итак, в предыдущем ответе вам может понадобиться «вырезать» посторонний период с помощью sed:
hostname=$(host $new_ip_address | cut -d ' ' -f 5)
Would стать:
hostname=$(host $new_ip_address | cut -d ' ' -f 5 | sed -e "s/\.$//g")