Поскольку Вы знаете, что Ubuntu уже имеет python
в нем. Однако я загрузил исходный код последних 3.5.1 версий и скомпилировал его использование
./configure
make
make test
sudo make install
Мой pwd
в данный момент /home/SarpSTA/Downloads/Python-3.5.1
Я хотел работать purge
на этой новой установке.
sudo apt-get purge python
не сделал бы, так как его путь выполнял старую версию не новая установка. Так, в то время как все еще был в папке, я работал sudo apt-get purge ./python
. Это создало очень длинный вывод, который был похож:
E: Release 'python' for 'package-name' was not found
для каждого пакета я установил на своем компьютере вместо package-name
.
Я удалял что-то, или код был просто отказом?
Это не то, как это работает. Можно только использовать apt-get purge
с пакетами, установленными APT или dpkg (пакеты Debian .deb). При компиляции программного обеспечения из источника, APT не будет отслеживать его.
, Если Вы все еще имеете свою папку исходного кода, cd
в него и работаете sudo make uninstall
. Эта команда должна удалить скомпилированное программное обеспечение.
, Если у Вас больше нет источника, я рекомендую Вам загрузить его снова, работать ./configure
внутренняя часть он и затем sudo make uninstall
.
Быть очень осторожны для не удаления установки Python по умолчанию . Это - очень важная часть Ubuntu, и у Вас будет поврежденная система при удалении его.
Так не, Вы не наносили ущерба путем выполнения sudo apt-get purge ./python
, потому что пакет не мог быть найден.
Нет. Эта команда не нанесла никакого ущерба. Он ничего не делал, но выдает сообщение об ошибке, указывающее, что не может выполнить задачу.
Что касается попытки удалить установленную версию, вам не нужно очищать ее, просто сделайте символическую ссылку на установленную версию, которую вы хотите использовать по умолчанию. Конечно, вы также можете вызвать python по полному пути установленной версии.
Пример:
$ /usr/bin/python3.7 myprogram.py
Подходящей командой для удаления будет присвоение имени пакета в качестве параметра удаления.
Пример удаления пакета:
$ sudo apt-get remove python
Вы можете узнать текущую символическую ссылку в вашей системе, выполнив:
$ ls -l /usr/bin/python*
Приведенная выше команда также покажет вам другие версии, которые случается быть установленным.
Конечно, многие программы используют шебанг (#!
) для указания интерпретатора программы для запуска. Вы можете увидеть пример этого, выполнив эту команду:
$ egrep python * | egrep "/usr/bin/python"
Выходные данные вышеупомянутой команды покажут вам названия различных приложений Python с указанной версией для запуска. Программа и команда для запуска разделены двоеточием в списке.
Чтобы понять, что apt-get purge ./python
пытался сделать, давайте перейдем к man-странице . Во-первых, общий синтаксис:
apt-get [-asqdyfmubV] [-o=config_string] [-c=config_file]
[-t=target_release] [-a=architecture] {update | upgrade |
dselect-upgrade | dist-upgrade |
install pkg [{=pkg_version_number | /target_release}]... |
remove pkg... | purge pkg... |
source pkg [{=pkg_version_number | /target_release}]... |
Вы увидите, что apt-get
поддерживает указание целевого выпуска через /foo
. Так, в ./python
, apt-get
интерпретируется python
как целевой выпуск. Мы вернемся к этому через минуту.
А как насчет .
? apt-get
поддерживает регулярные выражения, и если имя пакета содержит .
, *
и т. Д., Оно будет обрабатывать его как регулярное выражение. И apt-get
проверяет частичные совпадения - если данное выражение совпадает с частью имени пакета, этот пакет выбирается:
If no package matches the given expression and the expression
contains one of '.', '?' or '*' then it is assumed to be a POSIX
regular expression, and it is applied to all package names in the
database. Any matches are then installed (or removed). Note that
matching is done by substring so 'lo.*' matches 'how-lo' and
'lowest'. If this is undesired, anchor the regular expression with
a '^' or ' .
соответствует каждому символу - так каждый [ 1119] имя пакета удовлетворит его. Поэтому apt-get
выберет каждый пакет, о котором он знает.
Теперь, возвращаясь к целевому выпуску, он используется для указания, какой репозиторий вы хотите использовать для этой операции, если один и тот же пакет предоставляется несколькими репозиториями. См. Как устанавливать обновления только из определенного репозитория?
python
не является допустимым выпуском в Ubuntu по умолчанию (и вряд ли будет таковым в любом случае). Таким образом, даже несмотря на то, что apt-get
выбрал каждый пакет, о котором он знал , он не смог найти соответствующий релиз и, следовательно, потерпел неудачу.
character, or create a more specific regular
expression.
.
соответствует каждому символу - так каждый [ 1119] имя пакета удовлетворит его. Поэтому apt-get
выберет каждый пакет, о котором он знает.
Теперь, возвращаясь к целевому выпуску, он используется для указания, какой репозиторий вы хотите использовать для этой операции, если один и тот же пакет предоставляется несколькими репозиториями. См. Как устанавливать обновления только из определенного репозитория?
python
не является допустимым выпуском в Ubuntu по умолчанию (и вряд ли будет таковым в любом случае). Таким образом, даже несмотря на то, что apt-get
выбрал каждый пакет, о котором он знал , он не смог найти соответствующий релиз и, следовательно, потерпел неудачу.