LXF103:Ответы
|
|
|
Содержание |
Ответы
- Есть вопрос по Open Source? Пишите нам по адресу: answers@linuxformat.ru
Память на подробности
В: Существует ли программа, позволяющая узнать, какая память установлена в машине – параметры чипов, частоту шины и тому подобное? Crucial предлагает утилиту ActiveX для IE, которая выполняет эту работу, но у меня не Windows, и я не хочу устанавливать дополнения к браузеру, которые получают столь тесный доступ к моему оборудованию.
gb, с форумов
О: Я знаю две программы, отображающие такие данные. lshw (http://ezix.org/project/wiki/HardwareLiSter) – консольная программа, показывающая достаточную информацию о Вашей компьютерной системе, включая сведения о памяти. Вот пример её вывода.
*-memory description: System Memory physical id: 40 slot: System board or motherboard size: 4GB *-bank:0 description: DIMM SDRAM Synchronous 800 MHz (1.2 ns) product: PartNum0 vendor: Manufacturer0 physical id: 0 serial: SerNum0 slot: DIMM0 size: 1GB width: 64 bits clock: 800MHz (1.2ns) *-bank:1
Графическая альтернатива – HardInfo (http://hardinfo.berlios.de), которая есть на LXF DVD каждого номера. Она показывает различные наборы информации о компьютере. Вместе эти программы могут дать Вам всю нужную информацию. Кстати, результаты вывода этих программ чрезвычайно полезны для нас, когда мы пытаемся ответить на вопросы.
Слежка за адресами
В: Я получаю доступ к моему компьютеру на работе через корпоративную VPN. Годами IP-адрес моей рабочей машины не менялся, но недавно оказалось, что он изменился один или два раза за неделю. Есть ли простой способ, чтобы мой компьютер (Kubuntu 7.10) посылал мне письмо с новым адресом, когда он меняется?
Javier
О: Прежде чем что-то делать, выясните, разрешает ли это Ваш работодатель. Иметь доступ к рабочей сети из дома приятно; потерять из-за этого работу – отнюдь нет!
Специальной утилиты для этого я не знаю (даже после 50 писем от читателей LXF с разьяснениями), но это легко сделать с помощью короткого скрипта, который можно запустить через Cron.
#/bin/sh IPADDRESS=$(/sbin/ifconfig eth0 | sed -n ‘s/.*inet addr:\([^ ]*\).*/\1/p’) if [[ “${IPADDRESS}” != $(cat ~/.current_ip) ]] then echo “Your new IP address is ${IPADDRESS}” | mail -s “IP address change” you@your.mail echo ${IPADDRESS} >|~/.current_ip fi
Реальная работа начинается со второй строчки: там применено регулярное выражение для извлечения текущего IP-адреса из вывода ifconfig. Он сравнивается с адресом, сохраненным при предыдущем запуске; для этих целей используется файл ~/.current_ip, но сгодится любое место, доступное Вам на запись и недоступное для нахождения другими. Если адреса отличаются, скрипт посылает письмо при помощи команды mail и пишет новый адрес в .current_ip.
Команда mail – это стандартная программа для отправки писем из командной строки или скрипта, но ей нужен установленный локальный SMTP. Если mail и ее зависимости не установлены на Вашем компьютере, удобнее будет взять SendEmail, устанавливаемую из Synaptic. Она может использовать любой SMTP-сервер. Замените команду mail в скрипте на sendEmail -s smtp.work.com -f you@work.com -t you@home.co.uk -u “IP address change” -q
Первый аргумент – это адрес почтового сервера на работе (на время тестирования можно удалить опцию -q [quiet – бесшумно]).
apt-get вне сети
В: Мой домашний компьютер с Ubuntu не подключен к Интернету, но у меня есть быстрое соединение в колледже. Есть ли инструмент, который я мог бы использовать на компьютере (c Windows), присоединенном к Интернету, для разрешения зависимостей?
Мне нужен способ ввести имя программы, которую я хочу установить, получить список её зависимостей и запихать его в Windows-приложение, чтобы добыть файлы и все прочее, от чего зависит приложение.
Tuxmando, с форумов
О: Способов есть как минимум два. Быстро и легко можно сделать с использованием опции ‘Generate package download script’ [Генерировать скрипт загрузки пакетов] в Synaptic. Отметьте пакеты, которые Вы хотите установить, затем выберите эту опцию в меню File; она создаст скрипт командной строки, запустив который, Вы сможете скачать пакеты. Затем перенесите пакеты на Вашу машину с Ubuntu и там поместите их в /var/cache/apt/archives или воспользуйтесь опцией меню ‘Add downloaded packages’ из Synaptic для их установки. Основной недостаток этого способа – скрипт требует наличия wget, поэтому Вам придется установить его на компьютере, с которого будете скачивать.
Как альтернативу, можно использовать apt-get из командной строки с опцией --print-uris. Apt-get будет автоматически пытаться установить все зависимости, а --print-uris выведет URL всех необходимых файлов. Используя grep и cut, достаньте URL из вывода с помощью
apt-get --print-uris --yes install pkgspec | grep ^\’ | cut -d\’ -f2 >downloads.list
Например, при запуске этой команды с заменой ‘pkgspec’ на ‘postgrey’ создастся файл, содержащий
http://security.ubuntu.com/ubuntu/pool/universe/ libn/libnet-dns-perl/libnet-dns-perl_0.59-1build1.1_i386.deb http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libb/libberkeleydb-perl/libberkeleydb-perl_0.31-1_i386.deb http://gb.archive.ubuntu.com/ubuntu/pool/main/ libd/libdigest-sha1-perl/libdigest-sha1-perl_2.11-1build1_i386.deb http://gb.archive.ubuntu.com/ubuntu/pool/main/ libd/libdigest-hmac-perl-dfsg/libdigest-hmac-perl_1.01-5_all.deb http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libi/libio-multiplex-perl/libio-multiplex-perl_1.08-3_all.deb http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libn/libnet-cidr-perl/libnet-cidr-perl_0.11-1_all.deb http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libn/libnet-ip-perl/libnet-ip-perl_1.25-2_all.deb http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libn/libnet-server-perl/libnet-server-perl_0.94-1_all.deb http://gb.archive.ubuntu.com/ubuntu/pool/ universe/p/postgrey/postgrey_1.27-4_all.deb
Как Вы можете видеть, здесь приведены и сама программа, и ее зависимости. Скопируйте download.list на USB-брелок и перенесите его на компьютер с быстрым Интернет-соединением. Многие программы FTP и менеджеры закачки умеют читать список URL для скачивания из файла по типу
wget --input-file myurilist
В строке ‘pkgspec’ можно задать больше одного имени пакета. Однако Вам необходимо время от времени запускать apt-get для обновления. Если Вы пользуетесь Интернетом не из дома потому, что Ваш домашний компьютер сидит на медленном модемном соединении, не опасайтесь проблем: apt-get update много не загружает. Если же у Вас вообще нет доступа в Интернет, можете запустить
apt-get --print-uris update
и скачать файлы в другом месте, затем скопировать, распаковать и переименовать файлы Sources в /var/lib/apt/lists.