Я хотел бы создать обновленную версию пакета network-manager-openconnect в Ubuntu. По-видимому, мне нужно получить последний источник пакета:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head
Тогда что? Пакет, похоже, имеет возможность обновлять себя из последнего вышестоящего кода с помощью git. Но как мне заставить это сделать?
Сборка обновленного пакета из ветви bzr имеет тенденцию отличаться в достаточной степени в зависимости от того, кто поддерживает ветви или как пакет работает в целом. Тем не менее, вот несколько рекомендаций по быстрому и грязному обновлению практически любого пакета, которые нужно отправить в PPA:
Получить ветку:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head
Затем переключитесь на нее, и обновите журнал изменений:
dch -i
dch -i просто откроет новую запись в debian / changelog, увеличив версию на одну версию. Если вы хотите добавить патч, это прекрасно, но если вы хотите обновить его до более новой версии вышестоящего программного обеспечения, вам нужно обновить номер версии до тире (-). Скажем, версия в 1.2-0ubuntu1 , если вы запустите dch -i , она изменится на 1.2-0ubuntu2 , что хорошо для исправления, но если вам нужно новая версия, которую вы, вероятно, захотите изменить на 1.3-0ubuntu1 .
Если вам нужно исправить, сейчас самое время добавить ваши изменения. В ветвях, которые имеют только каталог debian / , вы можете использовать bzr bd-do (требуется пакет bzr-builddeb), чтобы переключиться на рабочее дерево, где вы можете вносить изменения, используйте quilt или любой системы исправлений, а затем «выйдите из 0», чтобы ваши изменения были скопированы обратно.
Если вы хотите новую версию для основной ветки разработки, после изменения журнала изменений вы, скорее всего, выполните команду, подобную этой:
debian/rules get-orig-source
Обычно это загружает нужный tarball от вышестоящей редакции, чтобы получить ты начал. Если необходимы дальнейшие изменения, выполните «описанные выше действия» для «исправления» или изменения других файлов в каталоге debian / , в противном случае вы почти закончили:
bzr bd -S
bzr bd позаботится о строительстве. Вызов его без аргументов начинает строить в вашей системе, а вызов с помощью -S говорит ему подготовить пакет с исходным кодом, который будет включать файл ..._ source.changes , который это то, что вы хотите загрузить в свой PPA (для этого используйте dput ppa: < yourname > / < имя вашего ppa > < изменяет файл > ).
Для пакетов NetworkManager все немного по-другому. Давайте рассмотрим именно openconnect:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head network-manager-openconnect
Убедитесь, что у вас также есть все зависимости для сборки: sudo get-build-deps
После получения ветки это прочитает debian / control и попробуйте загрузить все, что вам нужно для сборки network-manager-openconnect. Возможно, вам тоже нужен Git. Как только это будет сделано, запустите get-orig-source , чтобы получить только архив самого последнего снимка из git:
debian/rules get-orig-source
Вы увидите пролетающий текст и тарбол с появится длинный номер версии. Это последний код, который вы можете получить для nm-openconnect.
Затем вам нужно будет обновить список изменений, указав номер версии из архива, просто сохранив суффикс -0ubuntu1 .
Или замените debian / changelog на нужный номер версии, затем запустите: debian / rules get-current-source
Поскольку плагины не сильно меняются, вы должен иметь возможность просто собрать пакет оттуда, используя bzr bd , как указано выше. Если нет, примените любые необходимые изменения, как указано выше.
Не забудьте bzr commit после того, как вы внесли изменения.
Сначала я забыл добавить, не стесняйтесь использовать систему предложений по слиянию ( Предложить для слияния ссылку на страницу вашего филиала на LP), когда изменения, которые вы делаете, могут принести пользу другим. Обычно вы можете просто предложить объединение с веткой, на которой основана ваша ветка (например, lp: ~ network-manager / network-manager / openconnect-ubuntu.head в этом случае).
Хорошо, обновлено, как вытащить код из стартовой панели
ветвь bzr lp: ~ сетевой менеджер / сетевой менеджер / openconnect-ubuntu.head
< / blockquote>Что это за доза, вытащить код из lp (хостинг на панели запуска). Нам нужно найти, где находится код.
man bzr
blockquote>
343 # type 343 по мере появления справочной страницы.bzr branch FROM_LOCATION [TO_LOCATION] If the TO_LOCATION is omitted, the last component of the FROM_LOCATION will be used. In other words, "branch ../foo/bar" will attempt to cre‐ ate ./bar. If the FROM_LOCATION has no / or path separator embedded, the TO_LOCATION is derived from the FROM_LOCATION by stripping a lead‐ ing scheme or drive identifier, if any. For example, "branch lp:foo-bar" will attempt to create ./foo-bar.
Попробуйте перейти в каталог, в котором вы хотите работать, или добавьте каталог, куда вы и код перейдете.
cd / home / [ваше имя пользователя] / [путь к каталогу разработки]
blockquote>
или ветвь bzr lp: ~ сетевой менеджер / сетевой менеджер / openconnect-ubuntu.head / home / [ваше имя пользователя] / [путь к каталогу разработки]
например, bzr branch lp: ~ network-manager / network-manager / openconnect-ubuntu.head / home / joe / projects / network-manger / devЕсли вы уже сделали это, у вас, вероятно, есть каталог в домашнем каталоге
ls ~
blockquote>
./openconnect-ubuntu. headВ этом каталоге должен быть файл README, чтобы посмотреть, что там должно быть, посмотрите код проекта , здесь ссылка на README .source
В README должны быть инструкции по созданию этого отдельного проекта.
Другие полезные инструменты bzr для установки
sudo apt-get install bzr-builddeb bzr-builder bzr-explorer quilt
blockquote>The bzr-explorere позволит вам просматривать ваши репозитории bzr, которые вы создали на своей машине в графическом интерфейсе.
Еще одна заметка. Вам может потребоваться получить весь источник сетевого менеджера, чтобы создать однокомпонентное openconnect. Может быть много зависимостей и между разными компонентами.
Вам необходимо создать исправление для текущего пакета opneconnect, а затем создать патч, используя все инструменты diff, которые вы используете. И отправьте его сопровождающему пакета.
- http://packages.ubuntu.com/en/karmic/network-manager-openconnect
- здесь есть ссылки на разные ресурсы, обновляющие внешний вид вашего пакета отправьте сообщение об ошибке и задайте вопрос. Задавайте вопрос, вероятно, вы получите помощь, которую вы смотрите от людей, которые работают с пакетом.
- это то, с чего я бы начал. Задайте вопрос здесь, чтобы узнать, что вам нужно сделать.
- Как работают патчи
Или, если вы хотите использовать новый пакет исправлений локально, вы хотите создать файл пакета .deb.
Создание пакета, довольно сложного, читайте по следующим ссылкам
- Как сделать стандартные деби Debian с нуля
- Руководство для новых сопровождающих Debian
- Это, вероятно, первое, что вам нужно прочитать.
- руководство по сборке ubuntu
- Что-то, что я использовал checkinstall
- У меня было несколько исправлений для маленьких маленький vpn-разъем, который я использовал в университете, который действительно хотел только около 4 других людей. Я использовал checkinstall, чтобы сделать пакет для нас.