Переміщення оснащення пакетів в інше місце / каталог


13

Я хочу перенести встановлені пакети оснащення в домашній каталог. Пакети Snap трохи більше, ніж пакети .deb, тому вони займають місце в моєму кореневому розділі. Я знаю, що пакети знаходяться в /var/lib/snapd/snapsі вони працюють з монтажем пакета до /snap/app_dir. Я спробував спростити посилання, але це не вийшло.

Відповіді:


15

Зміна каталогу установки каталогів

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

Перше рішення, яке громада категорично відмовила, але я не намагалася, - використовувати символічні посилання, щоб зв’язати каталоги, які призводять до оснащення. Цей метод, здається, не працює, оскільки відповіді громади говорять, що apparmom не працює з символічними посиланнями.

Друге рішення - mount --bindце каталог, /val/lib/snapd/snapsякий добре працює для мене з уже встановленими програмами, але не вдалося встановити нові програми, оскільки я переміщав каталог на інший розділ. Це дало мені помилку з приводу жорсткого зв’язку оснащення програми з кеш-каталогом, який знаходиться в /var/lib/snapd/cache. Я не знаю, чи може це рішення спрацювати, якщо місцеположення знаходиться в одному розділі чи ні; але це причина, чому я переміщую каталог оснащення, щоб звільнити деякий простір від розділу до іншого.

Третій і робочий варіант - перенести /var/lib/snapdкаталог в цілому, а потім mount --bindдо нього з іншого місця, і це працювало для мене, і ось кроки.

Ви вже знаєте лише невелику примітку, після того, як rsync буде виконано на наступних етапах, ви можете /var/lib/snapdстворити резервну копію даних всередині іншого місця, поки весь процес не буде успішно виконаний, тоді ви зможете видалити дані резервного копіювання, якщо хочете звільнити більше місця.

##############################################################################
# Take Care this section may break the System !!!
##############################################################################
##Move snap folder to Home instead of root.
#Create the directory : you can change the location
mkdir /home/$USER/snap/snapd

#Copy the data
sudo rsync -avzP /var/lib/snapd/  /home/$USER/snap/snapd/

#Do backups
sudo mv /var/lib/snapd /var/lib/snapd.bak
sudo cp /etc/fstab /etc/fstab.bak

#Change fstab (Change $USER with your name or change the path totally)
echo "/home/$USER/snap/snapd /var/lib/snapd none bind 0 0" | sudo tee -a /etc/fstab

#remount fstab Or reboot.
sudo mkdir /var/lib/snapd
sudo mount -a

if ls  /var/lib/snapd/ | grep snaps
then
    echo "Re-mounting snapd folder is done successfully. !!!!"
    sudo rm -rf /var/lib/snapd.bak
else
    echo "WARNING : Re-mounting snapd folder failed, please revert !!!!! "
    echo "WARNING : Re-mounting snapd folder failed, please revert !!!!! "
    echo "WARNING : Re-mounting snapd folder failed, please revert !!!!! "
    echo "WARNING : Re-mounting snapd folder failed, please revert !!!!! "
    echo "WARNING : Re-mounting snapd folder failed, please revert !!!!! "

    # Trying to revert automatically
    sudo cp /etc/fstab.bak /etc/fstab

    sudo mount -a
    sudo umount /var/lib/snapd

    sudo mv /var/lib/snapd.bak /var/lib/snapd

    echo "Files located at ~/snap/snapd should be removed, but it keeped for
    recovery until you ,manually, reboot the system and make sure the service
    is running correctly then manually you can remove that folder ~/snap/snapd
    !!!!!!!!!!!!!!, you should do that manually."

fi
##############################################################################
# Take Care the pervious section may break the System !!!
##############################################################################

Список літератури

  1. Призначений для користувача диск місце для певного клацає випуск
  2. задати ubuntu Питання (Не найкраще рішення) Посилання
  3. Пропозиція використовувати прив'язування прив’язки замість символічних посилань у переміщуваних оснащених каталогах Посилання
  4. Відмінності між прив'язкою кріплення та символічними посиланнями Посилання
  5. Зробіть перев'язку кріплення кріплення

1
Для мене чудово працює. Дякую! Мені довелося (пере-) створити каталог / var / lib / snapd після переміщення його в .bak для mount -a для роботи
Салім

@Salim, Ти маєш рацію, я пропустив цей крок, який я додам до сценарію
Мухаммад Юсуф

11

Я нарешті знайшов спосіб.

  • Спочатку перемістіть пакет оснащення в потрібне місце. Нехай snap_app.snapяк додаток, яке ви хочете перемістити. Перемістіть пакет з /var/lib/snapd/snaps/snap_app.snapдо ~/snaps/snap_app.snap.
  • Тоді вам доведеться змінити параметр кріплення у /etc/systemd/system/snap-snap_app-90.mount, число у назві файлу може бути різним. Він має директиву What=/snap_app_loactionвідповідно до [Mount]. Змініть його на нове розташування пакету оснащення.
  • Нарешті, ви повинні позначити пакет оснащення на /var/lib/snapd/snaps/.
    Наприклад: ln -s ~/snaps/snap_app.snap /var/lib/snapd/snaps/snap_app.snap

Пакет оснащення спочатку встановлюється в /snap/snap_appкаталог. ви можете це перевірити mount. Перезавантажте машину, і ви все готові.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.