Кіріспе

Компьютерлік бағдарламаның түрі

Портативтік қосымша (портативтік қосымша), кейде жеке қосымша деп те аталады, – басқа файлдарды өзгертпей немесе қосымша бағдарламалық жасақтаманы орнатуды қажет етпей жұмыс істеуге арналған бағдарлама. Осылайша, оны кез келген үйлесімді компьютерге оңай қосуға, іске қосуға және алып тастауға болады, орнату немесе жанама әсерлер болмайды. Іс жүзінде портативтік қосымша пайдаланушы жасаған деректерді және конфигурациялық параметрлерді өзі орналасқан каталогта сақтайды. Бұл бағдарламаны пайдаланушының қалауын және деректерін әр түрлі компьютерлер арасында ауыстыруды жеңілдетеді. Конфигурациялық параметрлері жоқ бағдарлама да портативтік қосымша бола алады немесе конфигурациялық файлдарын (мысалы, INI файлы) пайдаланушының профилінде сақтай алады, бірақ қазіргі таңдағы көптеген портативтік қосымшалар өз конфигурациялық файлдарын портативтік каталогта сақтайды. Файл жолдары компьютерлерді ауыстырғанда диск әріптерінің өзгеруіне байланысты әр түрлі болуы мүмкін болғандықтан, портативтік қосымшалар оларды салыстырмалы форматта сақтауы мүмкін. Кейбір қосымшаларда осы мүмкіндікті қолдау үшін опциялар бар, бірақ көптеген бағдарламалар мұндай мүмкіндіктермен жабдықталмаған. Мұндай бағдарламалар үшін қолданылатын әдеттегі тәсіл – бағдарлама іске қосылғанда қажетті параметрлер мен файлдарды хост-компьютерге көшіру және бағдарлама жабылатын кезде оларды қайтадан бағдарламаның каталогына көшіру. Windows жүйесінде қосымшаның бастапқы кодын өзгертпей, қосымшаны тасымалдауға қол жеткізудің тағы бір жолы – қосымшаны виртуализациялау: қосымша файлдық жүйеге және тіркелімге жасалатын шақыруларды ашық түрде бақылап, оларды қосымшаның білмеуімен басқа тұрақты сақтау орындарына қайта бағыттайтын орындалу қабатына қарсы «тізбектеледі» немесе «жинақталады». Бұл тәсіл қосымшаның өзін өзгертпей, оны портативті етеді. Осы тәсіл жеке қосымша компоненттеріне де қолданылады: орындалу уақыты кітапханалары, COM компоненттері немесе ActiveX, емес, тек толық қосымша үшін ғана. Нәтижесінде, компоненттер осындай тәсілмен тасымалданғанда, оларды бастапқы портативтік қосымшаларға біріктіруге болады, бір операциялық жүйеде (ОЖ) өзара қақтығыстарсыз әртүрлі конфигурациялармен/параметрлермен қайта-қайта құруға (виртуалды түрде орнатуға) болады. Тасымалданған компоненттер ОЖ қорғалған байланысты объектілерге (тіркелім мен файлдарға) әсер етпейтіндіктен, оларды орнату және басқару үшін әкімшілік құқықтары қажет емес. Microsoft өзінің Windows операциялық жүйесі үшін арнайы тіркелімнің қажеттілігін 2005 жылға дейін сезінді. Ол бұл технологияның бір бөлігін жоғарыда аталған тәсілдерді қолдана отырып, қолданбаның үйлесімділік дерекқоры арқылы Windows XP-ге енгізді. Ол осы технологияның ешқайсысын өзінің жүйелік API арқылы қолжетімді етпеді.

Unix-қа ұқсас жүйелерде тасымалдануы

Unix-ке ұқсас базаны ескере отырып жазылған бағдарламалар көбінесе ешқандай болжам жасамайды. Көптеген Windows бағдарламалары Windows 95/98/ME дәуірінде (және Windows XP/2000-де, бірақ Windows Vista немесе Windows 7-де емес) пайдаланушының әкімші екенін қабылдайды. Unix сияқты орталарда мұндай жағдай «Рұқсат берілмеді» қатесіне әкеледі, себебі пайдаланушылар көбінесе артықшылықтары жоқ күйде болады. Сондықтан бағдарламалар әдетте параметрлерді сақтау үшін HOME ортасының айнымалысын пайдаланады (мысалы, $HOME/.w3m браузері үшін). Динамикалық байланыстырғыш LD LIBRARY PATH ортасының айнымалысын ұсынады, оны бағдарламалар стандартты емес каталогтардан кітапханаларды жүктеу үшін пайдалана алады. Егер /mnt портативті бағдарламалар мен конфигурацияны қамтиды деп есептесек, команда жолы былай болуы мүмкін: HOME=/mnt/home/user LD LIBRARY PATH=/mnt/usr/lib /mnt/usr/bin/w3m www.мысал.com. GCC Linker опциясы $ORIGIN пайдаланушының өзара әрекеттесуіне (мысалы, сценарийді немесе орта айнымалысын бейімдеуге) қажеттілігі жоқ Linux қолданбасын әртүрлі каталогтарда жасауға мүмкіндік береді, ол кітапханаларды салыстырмалы жолмен іздеуге арналған. Барлық бағдарламалар оны қолдамайды – кейбіреулері $HOME-ды мүлдем елемейді және үй каталогын табу үшін /etc/passwd-те пайдаланушыны іздейді, соның салдарынан портативтіліктің бұзылуына себеп болады. Сонымен қатар, Autopackage, klik (қазір AppImage деп аталады) немесе CDE сияқты, бірақ 2000 жылдары Linux қауымдастығында шектеулі қабылдау мен қолдауға ие болған, әкімшілік құқықтарды қажет етпейтін пакет форматтары бар. 2015 жылы Linux экожүйесі үшін портативті және дистрибутивтен тәуелсіз жинақтау идеясы Линус Торвальдс DebConf 2014 конференциясында осы тақырыпты талқылағаннан және кейіннен AppImage-ді суға түсу журналы үшін қолдағаннан кейін көбірек қызығушылық тудырды. Мысалы, MuseScore және Krita 2016 жылы бағдарламалық жасақтаманы тарату үшін AppImage жинақтарын қолдана бастады. RedHat 2016 жылы Flatpak жүйесін шығарды, ол Александр Ларссонның glick жобасының мұрагері, ол klik (қазір AppImage) шабыттандырды. Сол сияқты, Canonical 2016 жылы Ubuntu және көптеген басқа Linux дистрибутивтері үшін Snap пакеттерін шығарды. Mac-ке сүйреп тастау арқылы орнатылатын көптеген Mac қолданбалары Mac қолданбалық жинақтары ретінде портативті болып табылады. Мысалға, Mozilla Firefox, Skype және Google Chrome кіреді, олар әкімшілік кіруді қажет етпейді және оларды орталық, шектеулі аймаққа орналастырудың қажеті жоқ. /Users/username/Applications (~/Applications) каталогына орнатылған қолданбалар macOS LaunchServices жүйесінде тіркеледі, дәл сол сияқты /Applications каталогына орнатылған қолданбалар да тіркеледі. Мысалы, Finder-де файлды оң жақ батырмамен түртіп, содан кейін «Open With» опциясын таңдасаңыз, /Applications және ~/Applications каталогтарынан қол жетімді қолданбалар көрсетіледі. Дамытаушылар Mac өнімдерінің орнатушыларын құра алады, олар пайдаланушыға үй каталогына орнатуды орындауға мүмкіндік береді, бұл орнатушы пайдаланушы интерфейсінде «Мен үшін орнату» деп белгіленеді. Мұндай орнату пайдаланушы ретінде орындалады.