Вы действительно можете закомментировать или полностью удалить вторую строку в вашем sources.list
. Существует еще одна очевидная повторяющаяся запись, не являющаяся -, поэтому я бы рекомендовал изменить sources.list
на
deb http://ftp.us.debian.org/debian jessie main contrib
deb http://security.debian.org jessie/updates main contrib
deb http://ftp.us.debian.org/debian jessie-updates main
deb https://deb.torproject.org/torproject.org jessie main
deb-src https://deb.torproject.org/torproject.org jessie main
(отбросив non-free
и отбросив ftp.debian.org
в пользуftp.us.debian.org
).
Вы можете сделать резервную копию и отредактировать файл одной командой:
sudo sed -i.bak '1,2d;s/ non-free//' /etc/apt/sources.list
Будет создана копия исходного файла в /etc/apt/sources.list.bak
.
Архивы ar
обычно используются для объектных файлов , даже если они могут быть использованы не по назначению для других целей (файлы .deb
из debian в основном являются архивами ar, например ).
Если вы скомпилируете небольшую программу на C, например:
void foo(){}
в объектный файл foo.o
, то этот объектный файл будет содержать символfoo
, указывающий на скомпилированный код, составляющий функцию foo
. Когда вы добавляете такой файл в архив с помощью ar rcs foo.a foo.o
, этот символ будет добавлен в таблицу индексов символов, которая используется ld
другими программами для быстрого поиска того, какой файл из архива содержит определенный символ.
Создание этой таблицы символов раньше было необязательным, в зависимости от переключателя s
, но теперь это по умолчанию с GNU ar, а переключатель s
в основном не используется -. Использование переключателяS
(в верхнем регистре с )предотвратит построение такого индекса.
Пример:
$ cc -Wall -c -o foo.o -xc - <<<'void foo(){}'
$ ar rc foo1.a foo.o
$ ar rcS foo2.a foo.o
$ cmp foo1.a foo2.a
foo1.a foo2.a differ: byte 9, line 2
$ nm -s foo1.a
Archive index:
foo in foo.o
foo.o:
0000000000000000 T foo
Опция -s
(вместо -)создаст таблицу символов в архиве. Это может быть полезно, если он еще не существует или удален с помощью strip
. В вашем архиве нет символов для создания таблицы.
Опция -c
просто блокирует вывод ar: creating out.a
, который вы получаете, когда не используете -c
.