Настоящая проблема заключается в том, что вы пытаетесь установить бинарный файл, который использует более новые версии или общие библиотеки, доступные в Ubuntu 9.10. Наилучшим вариантом должно быть сделать конкретную цель для старой Ubuntu 7.10 и скомпилировать ее со старыми библиотеками (это бэкпорт).
Затем вы должны сделать два (или более) пакета .deb, один для Ubuntu 9.10 и один для Ubuntu 7.10.
Другая возможность - продолжать делать то, что вы делаете сейчас: установите LD_LIBRARY_PATH, чтобы он указывал на желаемую версию libstdc ++ и другие необходимые библиотеки. Вы просто устанавливаете эту переменную среды в сценарии оболочки запуска. В вашем скрипте вы проверяете, доступны ли новые библиотеки или нет, и вы устанавливаете свой LB_LIBRARY_PATH (скажем, / usr / local / lib / myprogram /) только при необходимости. Но, как отмечали другие, это очень плохая практика. В любом случае, никогда не пытайтесь поместить эти предоставленные библиотеки в их стандартное место в Ubuntu 9.10, вы рискуете взломать целевую систему и вызвать проблемы с обновлением для пользователей или вашей программы, если когда-нибудь эти библиотеки будут официально перенесены.
Но если вы решите включить свой собственный набор системных библиотек, есть еще один способ пойти дальше, чем приведенный выше: просто статически связать эти библиотеки. Если программа является единственным пользователем библиотеки, как, вероятно, будет в приведенном выше сценарии, вы потеряете все преимущества использования общей динамической библиотеки, тогда зачем вообще ее использовать? А со статически связанными библиотеками вам не придется их устанавливать.