Нет такой вещи как "система' веб-сервера в Unix и различных "методах".
Можно установить программное обеспечение в системе, которая содержит простой веб-сервер, и используйте его или нет.
python -m SimpleHttpServer
просто загружает модуль SimpleHttpServer, который содержит основной веб-сервер.
Что-то подобное существует для Perl, просто взгляните на CPAN: http://search.cpan.org/dist/HTTP-Server-Simple/
"Простой" решение для Java: http://www.simpleframework.org/
То же может быть действительно легким achived с JavaScript и nodejs: http://nodejs.org/api.html, посмотрите раздел о HTTP.
Другое решение состояло бы в том, чтобы сделать это самостоятельно: HTTP является действительно простым протоколом, только когда дело доходит до подачи некоторые статические файлы. Для получения/foo/bar браузер запросит это с:
GET /foo/bar HTTP/1.1
Ответ должен быть в следующей форме:
HTTP/1.0 200 OK
Last-Modified: Tue, 10 Jan 2010 11:11:11 GMT
Content-Type: text/html; charset=utf-8
YOUR CONTENT
или
HTTP/1.1 404 Not Found
Last-Modified: Tue, 10 Jan 2010 11:11:11 GMT
Content-Type: text/html; charset=utf-8
YOUR 404 ERROR PAGE
Включайте Измененный в последний раз заголовок, чтобы позволить кэшироваться ресурсов. Должно быть возможно записать минимальную реализацию этого в нескольких строках кода. Свяжите его с портом, и у Вас будут свой веб-сервер и выполнение. Используйте inetd или netcat для привязки его с IP.
Править: Вот простой сценарий оболочки, который делает точно это задание. Это также поддерживает генерацию индекса для папок и 404 обработок ошибок:
Вы попытались использовать dpkg --get-selections >packages
? Если Вы хотите исключить некоторые пакеты, можно отредактировать выходной файл packages
. Когда Вы сделаны, передаете его целевой системе и говорите:
dpkg --set-selections <packages
И пакеты будут отмечены для установки. Необходимо будет, скорее всего, также сказать aptitude update; aptitude dist-upgrade
.
Другой вопрос: если те пакеты i386
пакеты архитектуры, и Вы имеете multiarch
установленный, можно установить .deb
s с обычным dpkg -i package.deb
. Но, вероятно, лучше заняться расследованиями в зависимости от конкретного случая и установить версии на 64 бита тех пакетов, которые имеют их.
На текущих версиях Debian можно получить список явно установленных пакетов с
apt-mark showmanual
Для тех, которые выполняют древние версии Debian, где apt-mark showmanual
не существует, или если Вы хотите выполнить дополнительные выборы, можно использовать способность.
aptitude search '~i !~M' -F %p >package.list
~i
соответствия установили пакеты; !~M
опускает пакеты, которые были установлены автоматически как зависимость некоторого другого пакета. -F %p
изменяет выходной формат для включения только имени пакета.
Можно позже установить те пакеты с
apt-get install $(cat package.list)
Debian сжимают, не имеет apt-mark showmanual
, но это имеет apt-mark showauto
который перечисляет автоматически установленные пакеты. При использовании этого можно перечислить все пакеты в старой системе с dpkg --get-selections >package.list
, восстановите все их и затем отметьте автоматические пакеты с apt-mark markauto
. Для Вашего варианта использования (32-разрядный к 64-разрядному), этот подход, вероятно, оставит несколько библиотек отмеченными как руководство, потому что у них есть различные имена под различной архитектурой.
Обратите внимание, что, если вариант использования должен воспроизвести идентичную установку, вместо того, чтобы сохранить набор пакетов, но изменить архитектуру, существует теперь инструмент, названный способным клоном (распределенный в Debian с тех пор хрипящий), который делает все автоматически.
acl
мог бы считаться важной частью основной системы и так будет отмечен, как вручную установлено. Это было “вручную” установлено первоначальным установщиком, а не пользователем, но несмотря на это, значение “автоматически установленного”, “можно безопасно удалить это, если это не повреждает зависимости”, и фундаментальные пакеты должны были заставить систему работать, правильно не отвечают всем требованиям.
– Gilles 'SO- stop being evil'
01.12.2015, 20:49
Я не вижу простой, стандартный способ сделать так. Я боюсь, что необходимо будет играть с dpkg
журналы и опции, потому что dpkg
не отличает "стандартные программы, которые шли с системой" и другими.
ЭТО не БУДЕТ ПРОСТО, я предпочитаю прояснять при помощи полужирного капитализированного текста, но можно сделать что-то вроде этого
Извлеките список установленного программного обеспечения от /var/log/dpkg.log*
файлы.
Удалите установленных во время системной установки. (Используйте время установки для обнаружения их),
Сохраните список в dpkg --get-selections
формат
И voilà! Когда Ваша система будет в порядке, переустановите свои программы с
apt-get update
dpkg --set-selections < yourSelection
apt-get -u dselect-upgrade