Як сказати Ubuntu, де встановити програму і як сказати, де була встановлена ​​існуюча програма?


10

Я абсолютно новачок у Ubuntu / Linux, на даний момент використовую сервер Ubuntu. Просто намагаюся з’ясувати щось основне.

Як можна сказати, де ви встановлюєте програму. Наприклад, я щойно встановив пошукову систему Sphinx, розмістивши тарбол, який я завантажив зі свого сайту на мій:

/home/sphinx

каталог. Я створив каталог сфінксів, щоб помістити цей тарбол. Потім я запустив ці команди:

tar xvzf sphinx-0.9.8.1.tar.gz
cd sphinx-0.9.8.1/
./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql

а потім такі:

make
sudo make install

Зараз у мене багато файлів, що сидять у каталозі, де я запускав ці команди. Це моя установка Spynx чи вона встановлена ​​десь ще?

У Windows, якщо ви запустите інсталятор (.exe-файл) у будь-якому місці, програма все одно буде встановлюватися у вашому каталозі C: ​​\ Program Files. Чи стосується щось подібне до Linux, де всі програми встановлені в центральному місці, або ви можете встановити програми в будь-якому місці системи.

Запитання

  1. Я вважаю за краще тримати всі мої встановлені програми в одному місці, щоб це було правильне місце для цього з точки зору найкращої практики. Іншими словами, що таке еквівалент Linux C: \ Program Files?

  2. І як завжди встановити в цьому місці, це лише питання розміщення тарболу та запуску команд встановлення з цього місця?

  3. Що робити, якщо я використовую sudo apt-get для встановлення пакету. Як я можу вказати на це місце, щоб сказати apt-get завжди встановлювати там?

Відповіді:


15

Чи щось подібне стосується Linux, де всі програми встановлені в центральному місці

Приблизні еквіваленти Windows встановлюють каталоги в Linux

  • \Windows = /bin
  • \Windows\System32= /libі/sbin
  • \Program Files= /usr/binі/usr/lib

Я вважаю за краще тримати всі мої встановлені програми в одному місці, щоб це було правильне місце для цього з точки зору найкращої практики. Іншими словами, що таке еквівалент Linux C: \ Program Files?

Це були б каталоги /usr, конкретно /usr/binта /usr/lib.

І як завжди встановити в цьому місці, це лише питання розміщення тарболу та запуску команд встановлення з цього місця?

  • Ні. Де ви знаходитесь, коли запускаєте команди встановлення, майже ніколи не має значення.

  • Програми, які ви встановлюєте через apt-get(або aptitude), майже завжди будуть належним чином завершені в /usr. АЛЕ програми, які ви компілюєте з джерела і make installчастіше виявлятимуться в /usr/local/bin, /usr/local/libтощо, і у вас можуть виникнути проблеми з цим, оскільки встановлений користувачем шлях у Debian / Ubuntu є /usrі ні /usr/local.

  • При компіляції з вихідних текстів , додайте цей перемикач в налаштуванні: ./configure --prefix=/usr. Таким чином, коли ви make installфайли опиняться в потрібному каталозі

  • Також вивчіть checkinstallпрограму, яка відслідковує файли, складені з встановлених джерел пакетів, робить деб-файл та дозволяє легко видалити / перевстановити.

Що робити, якщо я використовую sudo apt-get для встановлення пакету. Як я можу вказати на це місце, щоб сказати apt-get завжди встановлювати там?

apt-get/ dpkgподбайте про це автоматично. Ви можете використовувати dpkg -L name-of-packageдля перегляду всіх файлів, встановлених пакетом, і де вони були встановлені.


дякую за детальну відповідь, лише одне запитання. Оскільки ви сказали "Ні. Де ви знаходитесь, коли ви запускаєте команди встановлення, майже ніколи не має значення", чи означає це тепер, що я встановив програму, я можу сміливо видалити папку Сфінкса в / home / shinx /, яку я витягнув з tarball і запустив команди встановлення та склав команди? Це зараз еквівалент інсталятора, який я вже запускав, щоб встановити програму, і тепер немає ніякого використання?
JakeRow123

1
Так, ви можете видалити папку, вилучену з тарболу - це по суті як папка "temp", до якої був вилучений інсталятор, і тепер марний. Це було чудовим питанням, я відредагую відповідь, щоб включити цю інформацію.
Останній

Ви можете, але тоді у вас виникнуть проблеми з видаленням програми "make uninstall". У Debian / Ubuntu ви ніколи не встановлюєте програмне забезпечення у префіксі / або / usr, ви повинні використовувати / usr / local. Чому, оскільки / usr / local створено для місцевих адміністраторів, це ти JakeRow123, щоб встановити власні програми. / і / usr призначений лише для пакунків Debian. Якщо ви встановите там, шанси великі, що у вас виникнуть проблеми. Тому використовуйте перемикач '--prefix = / usr / local' для налаштування команди при складанні вашої власності. Тоді 'зробити; sudo make install 'встановить там програму.
Андерс

@Anders, make uninstallНЕ є стандартною функцією і не зустрічається у багатьох джерелах програми. Крім того, /usr/localчасто не стоїть на шляху до Ubuntu і може спричинити проблеми при спробі запуску програм або спробі компілювати (через включене в /usr/local).
Останній

НЕ слід встановлювати програмне забезпечення в неправильному місці, наприклад, під / usr, а не в потрібному місці, як / usr / local. Ви повинні усунути помилку з PATH, якщо середовище комп'ютера / користувачів налаштовано неправильно. Встановлення під / або / usr ВІДБАЄ вас у біді. Повірте мені в цьому. Був там і робив це. Це НЕ було весело. Зовсім. Деякі програми, всі з автоконфігуруванням, коли ви встановили команду configure, видалили. Інші, хто цього не має, не є корисними, і повинні повідомити про помилку ...
Anders

4

Зазвичай програма встановлюється в парі каталогів під одним головним каталогом, який називається префіксом . Який головний каталог використовувати, залежить від того, хто встановлює, для відьом і хто керуватиме програмним забезпеченням.

У префіксі /usrвикористовується програмне забезпечення, запаковане вашим дистрибутивом. Ви повинні НЕ встановлювати будь-яке інше програмне забезпечення там, тому що це буде плутати розподіл при установці і модернізації програмного забезпечення упаковані розподілу. Тому, будь ласка , не встановлюйте там власне складене програмне забезпечення. Це не дуже гарна ідея, якщо ви справді не знаєте, чим займаєтесь. І якщо ви не розробник Debian або Ubunut, зазвичай цього не робите. Я б цього не робив.

Для комерційного програмного забезпечення використовується префікс /opt. Вони зарезервовані, щоб вони якнайменше перешкоджали дистрибутивам та місцевому системному адміністратору.

Для програмного забезпечення, який системний адміністратор встановлює для всіх користувачів, використовується префікс /usr/local. Там це не в змозі як від комерційної, так і від дистрибутивної установки, і не заважатиме їм. Отже, як системний адміністратор ви використовуєте це (якщо у вас є привілеї root, ви - системний адміністратор).

Якщо ви звичайний користувач, який встановлює програмне забезпечення для себе, ви можете використовувати свій домашній каталог як префікс, скориставшись --prefixопцією до configureкаталогу префіксів " ~/" або $HOME/. Я цим багато користувався, будучи студентом. :-)

Зазвичай програмне забезпечення робить все правильно, коли ви виконуєте configureпараметр --prefixз правильним значенням, а потім make; make install.

Під будь-яким із цих префіксів ви зазвичай знайдете ці каталоги в стандартній установці.

  • bin - виконувані програми, бінарні файли.
  • sbin - системні бінарні файли, які зазвичай не повинні виконуватись звичайними користувачами.
  • man - сторінки керівництва для програм, бібліотек та конфігураційних файлів тощо.
  • etc - конфігуруйте файли із значеннями за замовчуванням для програмного забезпечення.
  • lib - бібліотеки програм та файли даних, які залежать від архітектури (наприклад, процесора) вашого комп'ютера.
  • share - файли даних, які не відрізняються в різних архітектурах і можуть бути спільними між різними комп'ютерами.
  • var- каталоги з даними, які змінюються під час виконання програми. Як реєстрація файлів тощо.

Більшість цих каталогів можна використовувати з захищеними від запису файловими системами для підвищення безпеки. Єдине, що потрібно записати користувачам, - це var/каталог. Коли програмне забезпечення оновлюється, ці каталоги очевидно (?) Повинні мати права письма. Це можна зробити за допомогою перезапису з правами запису під час встановлення, а потім перечитати з читанням лише після встановлення. Але це вдосконалено, і я даю це лише як приклад вдосконаленого управління пакетами.

Є також деякі каталоги безпосередньо під /(кореневою каталогом), які не існують під будь-яким іншим префіксом, як /dev, наприклад /tmp, /procта /srv(для серверів каталогів даних, але вони зазвичай знаходяться під /var/libта /var/wwwта такими каталогами, тому вам потрібно змінити конфігурацію на використовуйте цей каталог. Я рекомендую робити це під час запуску сервера. Використовуйте лише /var/для тестування стандартної установки).

  1. Linux не є MS Windows. Є багато місць для розміщення встановлених програм. Це залежить, хто встановлює і для кого. Прочитайте це у моєму дописі. Зауважте. RedHat використовує /usrяк Debian / Ubuntu /usr/local. Дізнайтеся про свій розподіл.
  2. Різні програми мають різні способи установки. --prefixкорисні для програм, що використовують configure. Найкращий спосіб дізнатися - це, мабуть, прочитати README.txtфайл чи щось подібне, яке вам, ймовірно, надано в архіві tar. Архів дьогтю можна витягти в будь-якому місці, як-от домашній каталог. Після того, як буде виконано етап встановлення, ви можете видалити витягнутий архів смоли, якщо вам не вистачає місця. Але не робіть цього рано, якщо ви не перевірили встановлення належним чином.
  3. Програми, встановлені з apt-getабо aptitudeзавжди встановлюються у відповідному місці для розповсюдження. Ви не можете змінити це місце.

2

При встановленні програм із сховища за допомогою звичайної установки він встановиться у потрібне місце, створить файли конфігурації у потрібному місці (функціонально схожий на реєстр Windows) та автоматично створить записи меню.

Коли ви завантажуєте файл (не бажаний, але часто необхідний, коли додаток не знаходиться у сховищі), перше, що ви зробили, - це запустити tar, еквівалентний розпакуванню в Windows. Це створює файли, які ви, швидше за все, бачите.

Потім, коли ви запускаєте make install, результати зазвичай ставлять у потрібне місце, можливо, створюють меню, але це не стирає необмежені файли. Ви, швидше за все, можете це зробити, але, можливо, захочете зберегти їх тимчасово на всякий випадок.

Ось цікава стаття про структуру каталогу Debian .


Приємна стаття, за винятком того, що вона не мала посилань на / usr / local, де ви встановлюєте власне програмне забезпечення, щоб не вступати в конфлікт із програмним забезпеченням, встановленим системою, і ви розповсюджуєте пакети (наприклад, Ubuntu). Встановити власне програмне забезпечення під / або / usr - це попросити проблеми, проблеми, які, ймовірно, є лише забрудненням - знову встановити систему з нуля ...
Anders
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.