Как применить патч OSPF к ns2 2.35 на Ubuntu 14.04

Я давно использую ns2 и nam на своей Ubuntu. Теперь я должен применить к нему патч (OSPF). Я искал, как применить патч в Linux (поскольку я новичок в этом), и все, что я получил, это:

1) $ tar xvf ns-allinone-2.35.tar.gz

2) $ cd ns-allinone-2.35/

3) $ ln -s ns-2.35/ ns-2.34

... Then the patch will work, except for one line. (commom/packet.h).

4) $ patch -p0 < 10-ospf4ns2.34-base.patch

http://sourceforge.net/projects/ospf4ns/

5) Replace commom/packet.h with the attached "packet.h" : Edited by hand.

6) export CC=gcc44 CXX=g++44 && ./install

Я распаковал файл tar, скопировал файл .patch в папку ns-allinone-2.35 под названием 10-ospf4ns2.34-base.patch, перешел в каталог в терминале, использовал ln -s ns-2.35/ ns-2.34, а затем пропатчил, используя строку 4. После этого у меня есть эти сообщения:

The next patch would create the file ns-2.34/classifier/classifier-mtopology.cc,
which already exists!  Assume -R? [n] y
patching file ns-2.34/classifier/classifier-mtopology.cc
The next patch would create the file ns-2.34/classifier/classifier-mtopology.h,
which already exists!  Assume -R? [n] y
patching file ns-2.34/classifier/classifier-mtopology.h
can't find file to patch at input line 92
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- ns-2.34.old/common/agent.cc    2009-06-14 18:35:45.000000000 +0100
|+++ ns-2.34/common/agent.cc    2010-02-26 23:34:33.161063590 +0000
--------------------------
File to patch:

После этого я не знаю, что делать. Какой файл нужно пропатчить? В ns-2.34 нет classifier-mtopology.h. И после этого какой packet.h заменить на указанный новый packet.h? Потому что папок common несколько. Любая помощь будет высоко оценена, потому что я новичок в Linux.


person Raein Hashemi    schedule 17.01.2015    source источник


Ответы (1)


Похоже, вы уже применили патч ранее (по крайней мере, частично) и находитесь не в том каталоге.

Начните снова, также вы можете избежать символической ссылки со следующими инструкциями:

  1. Извлеките ns-allinone-2.35.tar.gz в новый каталог.

  2. кд нс-аллинон-2,35/нс-2,35

  3. Примените патч с помощью:

    патч -p1 ‹ 10-ospf4ns2.34-base.patch

person Fernando    schedule 17.01.2015
comment
Похоже, я подал заявку, потому что действительно подавал несколько раз. Вплоть до того момента, пока не находит файл ns-2.34/classifier/classifier-mtopology.h. Я подумал, что это может быть применено только к папке ns-2.35, но из-за названия патча, указывающего 2.34 и использующего $ ln -s ns-2.35/ ns-2.34, я подумал, что патч будет применяться как к папкам ns-2.34, так и к ns-2.35. Я попробую, как только доберусь до своей убунты, спасибо. - person Raein Hashemi; 17.01.2015
comment
Разве это не должно быть patch -p1 < ../10-ospf4ns2.34-base.patch, потому что я подаю заявку в папке ns-2.35? А можно спросить, почему p1, а не p0? - person Raein Hashemi; 17.01.2015
comment
Да, если вы извлечете его туда, где вы делали это в прошлый раз, вам придется использовать ../10-.... Что касается -p1, то он съедает один компонент пути, поэтому имя ns-2.34/classifier/classifier-mtopology.h становится classifier/classifier-mtopology.h в следствии этого симлинк не нужен, а нужно делать cd ns-allinone-2.35/ns-2.35. - person Fernando; 17.01.2015
comment
Спасибо, а вы знаете, в чем разница между p1 и p0? - person Raein Hashemi; 17.01.2015