Después de experimentar este mismo problema, funcionó lo siguiente.
$ pip install MySQL-python
Por supuesto, esto es usando un virutalenv.
cd /home/user/dev
mkdir TracEnv
mkdir TracEnv/TracProject
cd./TracEnv/
virtualenv venv
source./venv/bin/activate
pip install trac
pip install MySQL-python
trac-admin /home/user/dev/TracEnv/TracProject initenv
«Заплатка» — это файл, описывающий изменения в другом файле (файл может быть любым, включая исходный код ). Один из самых простых способов создания и использования патча — это diff
и patch
.
Допустим, у нас есть простая программа hello world в файле с именемhello1.c
:
#include <stdio.h>
int main(void)
{
printf("Hello world!\n");
return 0;
}
Теперь изменим строку "Hello world!\n"
на "Hi world!\n"
и вызовем новую программуhello2.c
:
#include <stdio.h>
int main(void)
{
printf("Hi world!\n");
return 0;
}
Теперь в терминале выполните следующую команду:
diff -u hello1.c hello2.c > hello-patch
Вывод содержимого файла исправления с помощью cat hello-patch
показывает это:
--- hello1.c 2019-03-18 13:29:35.897546888 -0500
+++ hello2.c 2019-03-18 13:30:02.866456737 -0500
@@ -2,6 +2,6 @@
int main(void)
{
- printf("Hello world!\n");
+ printf("Hi world!\n");
return 0;
}
В этом файле указаны различия между hello1.c
и hello2.c
.
Теперь предположим, что вы распространили исходный код hello1.c
среди своих друзей. Этот патч-файл hello-patch
позволяет вашим друзьям преобразовать hello1.c
в hello2.c
с помощью команды patch. Если hello1.c
и патч находятся в одном каталоге, эта команда:
patch < hello-patch
Это «применит патч к hello1.c
». Когда это будет сделано, hello1.c
будет обновлен и теперь идентичен hello2.c
.
Таким образом, патчи — это просто списки изменений в файле (или наборе файлов ), и эти патчи позволяют кому-то выборочно обновлять файл, применяя патчи.
Команды diff
и patch
хорошо работают для небольших патчей. Для всего большого и сложного потребуется инструмент промышленной прочности. Linux использует git
. Справочная система git
довольно хороша. Например, git help -a
перечисляет все git
разделы справки, а git help format-patch
подробно описывает, как «Подготовить исправления для электронной -отправки по почте».
Разработка Linux осуществляется по электронной почте, и вы можете просмотреть архив электронных писем, отправленных разработчиками Linux, на lkml.org и kernelnewbies.org — отличное место для начала. для изучения разработки ядра Linux. Имейте в виду, поскольку похоже, что книга, которую вы цитируете, была опубликована в 2009 году, некоторые содержащиеся в ней технические детали устарели.
«Перекомпиляция» в данном случае просто означает повторную компиляцию после применения патча к исходному коду. Это похоже на запуск чего-то вроде gcc hello1.c -o hello
для компиляции исходного файла в исполняемый код. В этом руководстве описывается сборка Linux .Здесь описывается процесс сборки с некоторыми шагами, которые можно использовать в дистрибутиве Debian .
Если вы не знаете, что означает «перекомпилировать ядро» и «применить исправление», вам следует прочитать другие -связанные с Linux/Unix книги, в которых рассматриваются более общие темы, вместо того, чтобы тратить время на попытки получить знания из книга, посвященная разработке ядра Linux, например «Программирование модулей ядра Linux» Питера Джея Зальцмана.
Я предлагаю вам следующие книги (извините, если этот пост выглядит как AD )чтобы начать свое путешествие, чтобы получить знания о том, как работать с Unix -как ОС: